veilletech.fr
22 oct. Feed du jour
#01 PHP Article

PHP2Shell : deux failles RCE, mettez PHP à jour

Une requête anonyme suffit : mettez à jour aujourd'hui.

PHP 8.5.12, 8.4.27, 8.3.36 et 8.2.35 corrigent deux failles critiques (CVE-2026-109618 et CVE-2026-109619, CVSS v4.0 9,2) qui permettent d'exécuter du code sans authentification, avec un risque maximal sous Apache et mod_php. Les contournements réduisent l'exposition sans protéger : seule la mise à jour compte, images Docker comprises. Une fuite de l'embargo le 20 octobre a fait avancer la sortie d'un jour.

4 min de lectureintermédiairevidéo 1:19
Partager
Sommaire5 sections
  1. Ce qui se passe
  2. Qui est exposé
  3. Une divulgation qui a déraillé
  4. Comment s'y prendre
  5. À retenir

Ce qui se passe

Le 21 octobre 2026, le projet PHP a publié PHP 8.5.12, 8.4.27, 8.3.36 et 8.2.35, la version de sécurité annoncée la veille. Elle corrige deux failles critiques, chacune notée 9,2 en CVSS v4.0, qui permettent à un attaquant sans compte d'exécuter du code sur le serveur. La CISA et Cloudflare désignent l'ensemble sous le nom PHP2Shell.

Les deux logent dans la gestion de la mémoire et des erreurs, que presque chaque requête traverse. C'est ce qui les rend graves, et difficiles à corriger sans casser la compatibilité des extensions tierces.

Qui est exposé

Toute installation qui sert des requêtes web : PHP-FPM, Apache avec mod_php, php-cgi, FrankenPHP, LiteSpeed. Le risque est le plus élevé avec mod_php.

Une divulgation qui a déraillé

Chronologie de la PHP Foundation, en UTC :

À la sortie, l'équipe PHP n'avait pas identifié d'exploit fonctionnel parmi les preuves de concept apparues, et la CISA ne notait aucune exploitation observée. Simon Willison signale pourtant des exploits en circulation depuis la nuit précédente : mieux vaut supposer la menace active. Cloudflare a déployé des règles WAF par défaut avant la divulgation : utile, mais cela ne remplace pas le correctif.

Comment s'y prendre

  1. Inventorier : php -v sur chaque serveur, mais aussi les images Docker, les hébergements mutualisés et la CI.
  2. Installer 8.5.12, 8.4.27, 8.3.36 ou 8.2.35 (ou le paquet corrigé de la distribution), reconstruire les images, puis redémarrer chaque worker.
  3. En attendant seulement, ces réglages ferment certains chemins et ne rendent pas le serveur sûr :
    • CVE-2026-109618 : memory_limit=-1, posé de façon non surchargeable (php_admin_value dans le pool FPM ou la configuration Apache) ; post_max_size = 8M sans envoi de fichiers, 32M avec, et upload_max_filesize en dessous ; une limite par conteneur ou cgroup qui ne tue que le worker concerné, jamais RLIMIT_AS ni RLIMIT_DATA, qui provoquent l'échec d'allocation vulnérable.
    • CVE-2026-109619 : session.upload_progress.enabled=0 dans php.ini ou le pool FPM (ni ini_set() ni .user.ini), puis redémarrage de tous les workers ; sur PHP 8.5, fatal_error_backtraces=0 ; corriger les erreurs fatales et les délais d'exécution qu'un attaquant peut provoquer.

Source : PHP.net, avis de sécurité du 21 octobre 2026. Source en anglais. Compléments : PHP Foundation (chronologie de la fuite), CISA, Cloudflare.