Deux failles notées 9,2 sur 10. Un interpréteur. Presque tout le web.
Si vous êtes client d'aratech ou si votre site est hébergé chez nous, écrivez immédiatement à [email protected]. Nous confirmerons votre version de PHP, l'état de votre correctif et ce que nous faisons à ce sujet. N'attendez pas qu'une newsletter vous l'explique.
Ce n'est pas un problème de plugin. Ce n'est pas un problème de thème. Ce n'est pas un bug WordPress, Magento ou Laravel.
C'est PHP lui-même.
Deux vulnérabilités critiques dans le cœur de PHP, référencées CVE-2026-109618 et CVE-2026-109619, permettent à un attaquant non authentifié d'exécuter du code arbitraire sur un serveur web. L'équipe de sécurité de PHP note les deux 9,2 sur 10 selon CVSS v4.0. Les correctifs d'urgence sont sortis aujourd'hui, le 21 octobre 2026, à 14h00 UTC (18h00 à Dubaï). Les branches corrigées sont PHP 8.5.12, 8.4.27, 8.3.36 et 8.2.35.
Le détail qui doit vous faire réagir : ces failles ont fuité publiquement le 20 octobre, environ un jour avant la divulgation coordonnée. La fuite contenait les identifiants CVE, un score de gravité et une date, et une capture d'écran d'un outil d'exploitation nommé PHP2Shell, attribué à Calif.IO, a circulé en même temps, avec une bannière affirmant qu'il fonctionne contre toute version de PHP depuis la 5.4.0. Les détails techniques sont restés sous embargo jusqu'à 14h00 UTC aujourd'hui. Autrement dit : tout internet reçoit le correctif et la matière pour le rétro-ingénierie au même instant.
Ce que sont réellement ces deux vulnérabilités
Les deux sont des défauts de sûreté mémoire dans le cycle de vie d'une requête. Aucune n'exige une connexion, un plugin ou une page mal écrite.
CVE-2026-109618, exécution de code via corruption en cas de mémoire épuisée. Lorsque PHP atteint une condition de mémoire épuisée, le processus peut être interrompu alors que les données internes de la requête ne sont que partiellement initialisées. Le nettoyage qui suit traite ces données invalides comme valides, et un attaquant capable de provoquer la panne d'allocation décide de ce qui se passe ensuite.
CVE-2026-109619, exécution de code via un état global obsolète. L'état interne rattaché à une requête peut survivre après la libération de la mémoire qui le portait. Une requête ultérieure traitée par le même worker peut consommer cet état obsolète avant que l'initialisation normale ne le réinitialise. La réutilisation des workers devient ici une surface d'attaque.
L'avis de PHP indique que le risque est maximal avec mod_php, où un exploit démontré permet à une requête non authentifiée de déclencher l'attaque avant même l'exécution du moindre code applicatif. C'est la phrase la plus importante de cet article : votre framework, vos règles de pare-feu et votre logique métier ne sont pas sur le chemin de l'attaque.
Qui est exposé
Toute personne qui sert du PHP via PHP-FPM, Apache avec mod_php, php-cgi, FrankenPHP ou LiteSpeed est concernée. Autrement dit, la configuration par défaut d'une très grande partie d'internet.
PHP fait tourner environ sept sites sur dix parmi ceux qui déclarent un langage côté serveur. WordPress, Drupal, Joomla, Magento, Laravel, Symfony, des applications sur mesure et une longue traîne d'appareils et d'outils qui embarquent PHP sans le dire. Des rapports indiquent que la plage concernée remonte à l'époque de PHP 5, en 2004. L'étendue exacte par version se précisera au fur et à mesure que les fournisseurs publieront leurs propres avis. Mallory a compté le 20 octobre environ 884 000 hôtes exposés à internet qui annonçaient encore PHP 8.1 ou antérieur à Shodan, soit 59 % de tous les hôtes annonçant une version.
Et voici la partie que la plupart des gens survolent : PHP 8.1 et les versions antérieures ne reçoivent plus de mises à jour du projet PHP. L'équipe a publié des rétroportages minimaux du code source pour 7.4, 8.0 et 8.1, mais si vous êtes sur une branche en fin de vie et que vous ne contrôlez pas votre compilation, vous n'êtes pas corrigé. Vous attendez le calendrier de quelqu'un d'autre.
Pourquoi les 48 prochaines heures comptent plus que la faille
Une vulnérabilité connue mais non publique est une course entre chercheurs et défenseurs. Une vulnérabilité dont le correctif est public est une course entre attaquants et tous les autres.
Dès que les versions corrigées sont téléchargeables, n'importe qui peut les comparer au code vulnérable et rétro-ingénierer le déclencheur. Ce n'est pas une inquiétude théorique : c'est le scénario habituel, et il se compte en heures, pas en semaines. Sansec s'attend à des attaques massives dans les quinze minutes suivant la publication. Patchstack signale déjà une exploitation active chez des partenaires d'hébergement, et Cloudflare a enregistré des tentatives d'attaque précoces. Cette avance est déjà en train d'être dépensée.
La réaction des institutions est un autre signal. Des services néerlandais comme DigiD, MijnOverheid, le site de la Chambre des représentants et Tweakers sont passés hors ligne par précaution. Plusieurs grandes plateformes japonaises ont basculé en maintenance d'urgence. The SEO Framework a coupé ses serveurs. CERT-EU a publié l'avis 2026-018, et le NCSC britannique demande de corriger immédiatement ou de déconnecter les systèmes lorsque la remédiation n'est pas réalisable.
Quand des gouvernements préfèrent l'indisponibilité à l'exposition, c'est l'évaluation honnête de la gravité.
Faites ceci maintenant, dans cet ordre
- Inventoriez avant de corriger. Toutes les installations PHP que vous exploitez : production, préproduction, conteneurs, hôtes dédiés au cron et appareils ou outils tiers embarquant PHP. On ne corrige pas ce qu'on a oublié.
- Passez à une version corrigée. 8.5.12, 8.4.27, 8.3.36 ou 8.2.35. En hébergement géré, demandez la fenêtre exacte par écrit et faites confirmer la version réelle ensuite. Un avis de maintenance ne signifie pas que vos sites sont traités.
- Si vous êtes en PHP 8.1 ou antérieur, décidez aujourd'hui. Soit vous compilez avec les rétroportages de l'équipe de sécurité PHP, soit vous migrez vers une branche supportée. Il n'existe pas de troisième option qui consiste à être en sécurité.
- Redémarrez tous les workers. PHP-FPM, Apache, LiteSpeed, FrankenPHP et tout worker CLI de longue durée. Un correctif installé mais non rechargé est un correctif qui ne tourne pas.
- Appliquez le durcissement intermédiaire même après le correctif. Il coûte peu dans
php.iniou la configuration du pool, et ne coûte rien à conserver :session.upload_progress.enabled = 0, au niveau du pool ou du serveur, jamais viaini_set()ou.user.inimemory_limit = -1, imposé là où l'application ne peut pas le surchargerpost_max_size = 8Msans upload,32Msi vous en avez besoin, avecupload_max_filesizeen dessous- sur PHP 8.5,
fatal_error_backtraces = 0
- Cherchez, ne vous contentez pas de corriger. Si votre site était accessible et non corrigé, vérifiez les fichiers inattendus, le PHP modifié dans les répertoires d'upload, les nouveaux comptes administrateurs, les connexions sortantes que vous n'avez pas configurées et les entrées cron que vous n'avez pas créées. Un correctif ferme la porte, il ne fait pas sortir un visiteur déjà entré.
- Ignorez les plugins miracles. Des extraits copiés-collés et des plugins "correctif PHP2Shell" non vérifiés circulent. Ils ne sont pas validés, ils ne fonctionnent pas, et certains sont l'attaque elle-même.
La leçon inconfortable
Tous les quelques années, le web rappelle que l'environnement d'exécution sous-jacent est un logiciel avec ses propres bugs. La facture est généralement salée.
Le schéma que nous voyons chez aratech, encore et encore : l'application a été mise à jour, les frameworks sont restés à jour, et la version de PHP en dessous n'a pas bougé pendant des années parce qu'elle fonctionnait. PHP 7.4 est en fin de vie depuis novembre 2022. Près de quatre ans sans correctifs de sécurité officiels, sur une branche qui a désormais besoin de rétroportages fournisseur pour survivre à une faille comme celle-ci.
La fin de vie n'est pas une préférence de maintenance. C'est un risque non géré avec une date dessus, et aujourd'hui cette date est arrivée à échéance.
Si vous êtes sur une ancienne branche, planifiez la montée de version comme un vrai projet : un serveur propre, une version PHP et framework à jour, des tests complets, puis une bascule en gardant l'ancien environnement comme solution de repli. Ce sont quelques jours de travail inconfortable, répétés tous les quelques années, face à l'alternative d'espérer que le prochain 9,2 ne vous trouvera pas.
Si vous n'êtes pas sûr, demandez-nous aujourd'hui
Si vous êtes client d'aratech ou si votre site est hébergé chez nous, écrivez immédiatement à [email protected] et nous vous dirons exactement où vous en êtes : votre version de PHP, si elle est corrigée, si nous avons vu quelque chose de suspect sur votre infrastructure et ce qu'il faut faire ensuite.
Si vous n'êtes pas client et que vous ignorez quelle version de PHP fait tourner votre site, c'est votre réponse. Écrivez-nous quand même. C'est la semaine pour le savoir.