Jinyi Solutions Jinyi Solutions Agents IA · Transformation numérique
Obtenir un devis gratuit

Nous répondons généralement en quelques heures (GMT+8).

Avis de sécurité et retour d’expérience

Réponse d’urgence PHP2Shell : deux failles PHP RCE critiques de score CVSS 9,2

Le 21 octobre 2026, PHP a publié des correctifs d’urgence à 14:00 UTC. Nous documentons la vérification des avis, l’audit du nœud de production de Hong Kong, la mise à jour et les scripts sécurisés Linux et Windows Server.

Résumé essentiel

01

La faille est dans PHP

Mettre à jour WordPress, Laravel ou les extensions ne suffit pas. Le runtime PHP doit être mis à jour.

02

Un redémarrage est obligatoire

Les anciens workers PHP-FPM, Apache, IIS et conteneurs peuvent continuer à exécuter le code vulnérable.

03

Créer un snapshot avant toute action

Le script ne sauvegarde que l’installation PHP. Le snapshot complet de la machine reste le retour arrière principal.

Ce qui s’est passé

PHP a corrigé deux failles critiques du cœur de l’interpréteur permettant potentiellement une exécution de code à distance sans authentification. Elles sont indépendantes du framework et affectent tous les SAPI qui traitent des requêtes Web : PHP-FPM, Apache mod_php, php-cgi, FrankenPHP et LiteSpeed.

CVE-2026-109618 exploite une sortie sur manque de mémoire alors que la mémoire de requête est partiellement initialisée ; le shutdown peut ensuite interpréter un état corrompu comme valide. CVE-2026-109619 est un use-after-free entre requêtes : une valeur globale peut encore référencer la mémoire libérée d’une requête précédente.

Versions affectées

PHP 8.2 à 8.5 disposent de versions officielles corrigées. PHP 8.1 et antérieurs sont EOL en amont. PHP a fourni des backports minimaux du code source pour 7.4, 8.0 et 8.1, sans nouvelles versions binaires officielles.

BrancheAffectéCorrectif officiel
PHP 8.5< 8.5.128.5.12
PHP 8.4< 8.4.278.4.27
PHP 8.3< 8.3.368.3.36
PHP 8.2< 8.2.358.2.35
PHP 8.1 et antérieurEOL en amontMise à niveau ou backport éditeur
Une distribution peut conserver le numéro de version amont tout en ayant rétroporté le correctif. Consultez l’avis CVE et le journal du paquet, pas seulement php -v.

Pourquoi les mises à jour applicatives ne suffisent pas

Les chemins d’attaque s’exécutent pendant l’initialisation, l’analyse ou le nettoyage de la requête PHP, avant le code applicatif. Mettre à jour WordPress, Drupal, Joomla, Laravel ou une extension de sécurité ne remplace pas la mise à jour de PHP.

  • PHP considère mod_php comme le risque le plus élevé : une requête non authentifiée peut déclencher l’exploitation avant le code applicatif.
  • PHP-FPM ne doit pas être considéré comme sûr. L’analyse du code source soutient la sensibilité, et la faille associée a été validée sur mod_php et FPM.
  • Installer un paquet ne termine pas la remédiation si d’anciens workers FPM, Apache, IIS ou CLI exécutent encore l’ancien binaire.
  • Docker exige une nouvelle image et un conteneur recréé ; docker restart relance seulement l’ancienne image.

Notre périmètre d’audit

Un scanner passif a inventorié CLI, FPM, CGI, modules Apache, Docker, services Windows, extensions et réglages INI. Nous avons ensuite vérifié le runtime derrière chaque point d’entrée Web réel au lieu de faire confiance à un seul php -v.

  • Inspecter PATH, /www/server/php, /usr/local, /opt, les pools FPM, Apache, IIS FastCGI, le registre et les conteneurs.
  • Comparer la date d’installation des paquets au démarrage des workers pour détecter un correctif installé mais non actif.
  • Une version masquée, un CDN ou un WAF réduisent l’exposition mais ne prouvent pas que l’origine est corrigée.
  • Les appliances, NAS, panneaux et PHP embarqué nécessitent les avis spécifiques de leurs éditeurs.

Séquence de remédiation sûre

La mise à jour de PHP est la seule correction complète. Cette séquence s’applique à Linux et Windows Server, y compris BT panel, IIS et les conteneurs.

  • Créer un snapshot complet dans le cloud ou l’hyperviseur et consigner PHP, SAPI, extensions, services et pools.
  • Sauvegarder le répertoire PHP, php.ini, la configuration FPM/Apache/IIS et les binaires ; vérifier le script de retour arrière.
  • Installer la version officielle de la même branche ou un paquet de distribution explicitement corrigé dans son avis CVE.
  • Avec Docker, tirer la nouvelle image et recréer le conteneur. Après un paquet, redémarrer complètement FPM, Apache, IIS et tous les workers PHP persistants.
  • Tester connexion, upload, paiement, files d’attente, cache et API critiques, puis confirmer la version réelle du SAPI Web.
  • Si l’hôte était exposé à Internet avant le correctif, rechercher webshells, processus enfants anormaux, tâches planifiées, connexions sortantes et accès aux secrets.

Si le correctif ne peut pas être appliqué immédiatement

Les réglages bloquent seulement certains chemins connus et ne rendent pas PHP sûr. Le correctif et un redémarrage complet des workers restent la seule remédiation complète.

  • CVE-2026-109618 : imposer memory_limit=-1 là où l’application ne peut pas le remplacer, réduire post_max_size et limiter au proxy la taille du corps, les parties, en-têtes et niveaux d’imbrication. Ne pas utiliser RLIMIT_AS ou RLIMIT_DATA à la place.
  • CVE-2026-109619 : définir session.upload_progress.enabled=0 avant l’initialisation et redémarrer tous les workers ; sous PHP 8.5, définir aussi fatal_error_backtraces=0.
  • Ne pas dépendre de .user.ini ou ini_set() pour ces protections ; leur application est trop tardive sur certains chemins.
  • Cloudflare WAF et autres règles de périphérie sont une défense en profondeur et ne couvrent que le trafic passant par ce point.

Retour arrière et limites des outils

Le retour arrière privilégié reste le snapshot complet. Les scripts créent rapports, manifestes et fichiers de rollback sous /root/php2shell-fullfix/<horodatage>/ sous Linux ou C:\ProgramData\PHP2ShellFullFix\<horodatage>\ sous Windows.

Les modifications automatiques sont limitées aux installations BT panel reconnues, à certains conteneurs Debian à image PHP officielle et aux installations ZIP PHP officielles sous Windows. Les builds source inconnus, paquets de distribution et runtimes embarqués reçoivent une procédure manuelle.

Le mode Apply exige trois confirmations exactes : risque compris, snapshot complet créé, sauvegarde et rollback vérifiés. Toute différence arrête le script.

Outils de réponse

Les scanners font un inventaire passif des versions et configurations. Les scripts serveur démarrent en mode contrôle et exigent trois confirmations avant modification.

Scanner Windows PCGitHub Release · PHP2ShellScanner-PC.exe Scanner Web localGitHub Release · 127.0.0.1 Scripts Linux + Windows ServerGitHub Release · Linux .sh · Windows Server .ps1 Code et documentation GitHubscriptsnet / php2shell-security-toolkit

Empreintes SHA256

Un scan HTTP ne voit pas une version masquée. « Inconnu » ne signifie jamais « sûr ».

Sources faisant autorité

Les faits produit s’appuient d’abord sur PHP et les avis GitHub Security ; les publications CISA, CERT-EU, NCSC-NL et des fournisseurs cloud servent de recoupement.

  1. PHP official security advisory · 2026-10-21
  2. CVE-2026-109618 · GHSA-w8hw-w9fx-j79w
  3. CVE-2026-109619 · GHSA-6wmf-4rv5-p3rp
  4. PHP 8.2.35 official release record
  5. NCSC-NL · php2shell operational information
  6. CISA CSAF/VEX · VA-26-295-01
  7. Canadian Centre for Cyber Security · AL26-026
  8. CERT-EU Security Advisory 2026-018
  9. Cloudflare · php2shell WAF protection

Un scan HTTP ne voit pas une version masquée. « Inconnu » ne signifie jamais « sûr ».

Obtenir un devis gratuit
Discuter avec WuXuan
WhatsApp Devis