Ce qui se passe
Le 20 octobre 2026 au soir, Laravel apprend que PHP et Node.js vont publier des correctifs pour des failles critiques.
Le préavis de PHP arrive à 19 h 58 UTC ; les versions publiques suivent le 21 octobre, à 12 h 38 UTC pour Node.js et à
13 h 38 UTC pour PHP. PHP corrigeait deux failles d'exécution de code à distance, celles que Qualys appelle PHP2Shell
(CVE-2026-109618 et CVE-2026-109619). Node.js en corrigeait dix, dont un défaut du décodeur Brotli. Laravel
publie le 4 novembre le bilan de sa réponse : environ 27 heures d'un petit groupe, relayé entre fuseaux horaires.
L'éditeur ne trouve aucune trace d'exploitation chez ses clients.
Ce qui a tenu : Laravel Cloud
Habituellement, Laravel met à jour ses images de base et laisse les clients redéployer. Ici, il voulait que chaque charge de travail soit corrigée. Il a donc :
- activé, à 08 h 55 UTC, avant la publication, les règles gérées du pare-feu Cloudflare sur ses domaines Cloud (puis sur Forge et les zones dédiées à 10 h 24). Une couche en plus, pas un remplacement du correctif ;
- construit sa propre image PHP, livrée à 14 h 24 UTC, car Docker Hub n'avait pas d'images corrigées avant des heures et certains hôtes de téléchargement étaient en panne ;
- modifié l'opérateur Kubernetes qui gère les applications des clients pour qu'il dépose les binaires PHP corrigés dans chaque conteneur au démarrage, puis le redémarre, au lieu de reconstruire les images.
Un limiteur de cadence évite de tout redémarrer d'un coup, ce qui surchargerait la facturation et la base de référence ; il a été accéléré cinq fois (environ 35 minutes au lieu de trois heures). Essai en développement, puis canari à 11 h 17 UTC dans deux régions peu denses (Canada, Tokyo), première vague à 14 h 31, puis par vagues. À 18 h 05 UTC, toutes les régions étaient à 100 %, sans action des clients. Les déploiements Cloud ont été suspendus de 13 h 54 à 17 h 33.
Ce qui a cassé : Forge, Envoyer, Vapor
Ces produits demandent aux clients de mettre à jour leurs propres serveurs.
- Forge : dix fois le volume habituel de tâches de mise à jour, dont beaucoup échouaient et se relançaient contre des dépôts de paquets instables. Les déploiements partageaient la même file et ont été affamés ; environ 48 000 tâches en attente à 16 h 43 UTC. À 17 h 45, Laravel annonce la file traitée : c'était prématuré. Environ 4 800 déploiements ont été annulés, restés trop longtemps en file, entre 19 h 30 et 21 h 27.
- Envoyer : ses serveurs ne pouvaient pas être corrigés en place. Hors ligne de 13 h 52 à 22 h 58 UTC.
- Vapor : nouveaux runtimes et nouvelles images, mais les clients doivent redéployer. Laravel a d'abord annoncé
qu'il redéploierait lui-même, puis s'est repris à 19 h 25. Le runtime historique
al2est déclaré non supporté.
Causes avouées : pas de responsable clair par canal de communication au départ, une équipe qui tourne sans toujours tenir l'historique complet, des produits plus petits et moins surveillés, des logiciels en fin de vie à reconstruire plutôt qu'à corriger, et aucun registre fiable des versions logicielles de chaque application.
Ce qui change chez Laravel
- Déploiements Forge sur leur propre file, dépôts et clés réparés, plus de capacité pour absorber un afflux.
- Un délai d'observation avant d'annoncer un retour à la normale, et des salles de crise enregistrées.
- Pour Cloud : le patch en place devient un outil standard, les règles Cloudflare restent, et le suivi exact du runtime de chaque application se renforce.
- Envoyer sur un système et un PHP supportés, pour qu'un futur patch ne coupe pas le service.
Pour vous
Même hors Laravel, la leçon vaut pour toute plateforme qui corrige un parc : séparer les files de déploiement de celles des mises à jour, tenir l'inventaire des versions de PHP, et avoir un plan d'image maison si les images amont tardent. Sur Forge, Vapor ou Envoyer, vérifiez votre version de PHP avec la base de connaissances de Forge.
Prochaine échéance côté Node.js : le 11 novembre 2026, nouvelles versions 26.x, 24.x et 22.x. Le plus grave des correctifs est classé HIGH sur ces trois séries, et les versions en fin de vie sont toujours touchées.
Source : le billet de Laravel, avec l'annonce Node.js du 11 novembre et le billet Qualys pour le nom PHP2Shell. Source en anglais.