Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
PHP-8.1.0-dev-Backdoor — Backdoor User-Agentt PHP 8.1.0-dev - Exécution de code à distance (RCE) | Kitploit
Outils/GitHubGitHub/k3ystr0k3r/php-8.1.0-dev-backdoor
Analyse des VulnérabilitésExploitationExploitation d'Applications WebSécurité WebSécurité de la Chaîne LogistiqueDéveloppement de Charges Utiles
GitHubk3ystr0k3r/php-8.1.0-dev-backdoor

PHP-8.1.0-dev-Backdoor

Backdoor User-Agentt PHP 8.1.0-dev - Exécution de code à distance (RCE)

Voir le dépôt
11il y a 1 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

PHP 8.1.0-dev User-Agentt Backdoor d'exécution de code à distance (RCE)

Sévérité : Critique (équivalent CVSS : 10.0)

Type de vulnérabilité : Backdoor de chaîne d'approvisionnement / Exécution de code à distance (RCE)

Logiciel affecté : PHP 8.1.0-dev (Build de développement uniquement)

Vecteur d'attaque : À distance (non authentifié)

Authentification requise : Non

Interaction utilisateur : Aucune

Impact : Compromission totale du système


Vue d'ensemble

La backdoor User-Agentt de PHP 8.1.0-dev est l'une des compromissions de chaîne d'approvisionnement les plus tristement célèbres de l'histoire des logiciels open source. Contrairement aux vulnérabilités classiques qui proviennent d'erreurs de programmation, ce problème résultait de l'insertion intentionnelle de code malveillant dans le dépôt officiel du code source de PHP.

La backdoor est apparue dans les instantanés de développement de PHP 8.1.0-dev en mars 2021, après que des attaquants ont réussi à compromettre l'infrastructure Git de PHP. Les commits malveillants usurpaient l'identité de mainteneurs PHP de confiance et introduisaient un mécanisme caché capable d'exécuter du code PHP arbitraire à chaque réception d'un en-tête HTTP spécialement conçu.

Bien que la backdoor n'ait existé que brièvement avant d'être découverte et supprimée, tout serveur ayant déployé l'un des builds de développement compromis est devenu immédiatement vulnérable à une exécution de code à distance (RCE) non authentifiée.

Cet incident a fondamentalement changé le flux de travail de développement de PHP et a finalement conduit à la migration du dépôt source PHP hors de son infrastructure Git auto-hébergée. :contentReference[oaicite:0]{index=0}


Pourquoi cette vulnérabilité est unique

La plupart des vulnérabilités d'exécution de code à distance proviennent de :

  • Débordements de tampon
  • Erreurs de validation des entrées
  • Corruption de mémoire
  • Défauts logiques

Cette vulnérabilité était différente.

Ce n'était pas un bug de code.

C'était une backdoor délibérément implantée, cachée à l'intérieur du code source légitime de PHP.

Au lieu d'exploiter une faiblesse existante, les attaquants ont modifié PHP lui-même pour exécuter du code PHP arbitraire fourni par quiconque effectuait une requête HTTP.

Cela fait de cet incident l'un des exemples les plus connus d'attaque de la chaîne d'approvisionnement logicielle.


Contexte

Le 28 mars 2021, deux commits suspects sont apparus dans le dépôt Git de PHP.

Les deux commits semblaient provenir de mainteneurs PHP bien connus.

Au départ, ils semblaient inoffensifs.

Les messages de commit ressemblaient à de simples corrections de fautes de frappe.

Cependant, les chercheurs ont rapidement remarqué un code suspect ajouté à l'interpréteur PHP.

Le code inséré recherchait dans les requêtes HTTP entrantes un en-tête personnalisé :

root@kitploit:~
User-Agentt

Remarquez le "t" supplémentaire.

Cette différence d'orthographe subtile a aidé à dissimuler la backdoor lors d'une revue rapide.

Si l'en-tête commençait par la chaîne de déclenchement :

root@kitploit:~
zerodium

PHP exécutait immédiatement tout ce qui suivait en utilisant :

root@kitploit:~
zend_eval_string()

Cela permettait en pratique à n'importe qui d'exécuter du code PHP arbitraire à distance.

Les commits malveillants ont été retirés en quelques heures après leur découverte. L'enquête a ensuite indiqué que les attaquants avaient compromis l'infrastructure Git de PHP plutôt que d'obtenir légitimement les clés de signature des mainteneurs. :contentReference[oaicite:1]{index=1}


Cause racine

Le code inséré effectuait approximativement la logique suivante :

root@kitploit:~
Incoming HTTP Request
          │
          ▼
Read User-Agentt Header
          │
          ▼
Does header start with "zerodium"?
          │
      Yes ▼
Execute remaining text as PHP
          │
          ▼
Attacker gains Remote Code Execution

Au lieu de traiter l'en-tête comme des métadonnées inoffensives, PHP l'évaluait directement comme du code PHP exécutable.


Analyse technique

Normalement, une requête HTTP contient des en-têtes similaires à :

root@kitploit:~
GET / HTTP/1.1

Host: example.com

User-Agent: Mozilla Firefox

La version compromise de PHP traitait en plus :

root@kitploit:~
User-Agentt:

Si sa valeur commençait par :

root@kitploit:~
zerodium

PHP appelait :

root@kitploit:~
zend_eval_string()

Le contenu restant devenait du code PHP exécutable.

Conceptuellement :

root@kitploit:~
User-Agentt:

zerodium
        │
        ▼
zend_eval_string(payload)
        │
        ▼
Remote Code Execution

Déroulement de l'attaque

root@kitploit:~
Attacker
    │
    │ HTTP Request
    ▼

GET /

User-Agentt: zerodiumsystem("id");

    │
    ▼

PHP 8.1.0-dev

    │
    ▼

Backdoor Triggered

    │
    ▼

system("id")

    │
    ▼

Command Executed

    │
    ▼

Output Returned

Aucune authentification.

Aucune session.

Aucun identifiant.

Une seule requête HTTP suffisait.


Pourquoi « User-Agentt » ?

Les attaquants ont intentionnellement choisi

root@kitploit:~
User-Agentt

au lieu de

root@kitploit:~
User-Agent

parce que :

  • cela semblait presque identique
  • cela échappait à un examen rapide
  • la plupart des développeurs ignorent les en-têtes HTTP inconnus
  • les applications existantes continuaient de fonctionner normalement

Cette minuscule faute de frappe dissimulait une backdoor complète d'exécution de code à distance.


Versions affectées

Uniquement :

root@kitploit:~
PHP 8.1.0-dev

Plus précisément, les instantanés de développement compromis publiés lors de l'incident de mars 2021.

Les versions stables telles que :

  • PHP 7.x
  • PHP 8.0
  • PHP 8.1 Stable

n'ont jamais été affectées.


Exigences de l'attaque

L'attaquant n'avait besoin que de :

  • Un accès réseau
  • Une connectivité HTTP
  • Un serveur PHP 8.1.0-dev vulnérable

Aucune authentification.

Aucune force brute.

Aucune connexion.

Aucun accès préalable.


Impact

Une exploitation réussie permet aux attaquants de :

  • Exécuter des commandes système arbitraires
  • Exécuter du code PHP arbitraire
  • Lire des fichiers sensibles
  • Modifier des applications web
  • Téléverser des webshells
  • Installer des backdoors persistantes
  • Extraire des bases de données
  • Voler des identifiants
  • Élever des privilèges
  • Pivoter plus profondément dans les réseaux internes
  • Compromettre complètement l'hôte affecté

En pratique, cette vulnérabilité entraîne une compromission totale du serveur.


Cartographie MITRE ATT&CK


Détection

Les administrateurs doivent immédiatement examiner les systèmes qui exposent :

root@kitploit:~
PHP/8.1.0-dev

dans des en-têtes de réponse tels que :

root@kitploit:~
X-Powered-By:

PHP/8.1.0-dev

Les journaux HTTP doivent également être consultés pour détecter les requêtes suspectes contenant :

root@kitploit:~
User-Agentt

ou

root@kitploit:~
zerodium

De nombreux systèmes de détection d'intrusion et produits IPS incluent désormais des signatures spécifiques à ce schéma d'attaque. :contentReference[oaicite:2]{index=2}


Indicateurs de compromission (IOC)

Les indicateurs possibles incluent :

  • Requêtes contenant User-Agentt
  • Valeurs d'en-tête commençant par zerodium
  • Exécution de commande inattendue
  • Fichiers PHP inconnus
  • Nouveaux webshells
  • Processus enfants suspects générés par PHP
  • Connexions réseau sortantes inexpliquées

Complexité d'exploitation

PropriétéValeur
AuthentificationAucune
Interaction utilisateurAucune
ComplexitéTrès faible
Privilèges requis

Cette vulnérabilité est considérée comme l'une des exécutions de code à distance les plus faciles à exploiter, car l'attaquant se contente d'envoyer une requête HTTP spécialement conçue.


Atténuation

Ne déployez jamais d'instantanés de développement de PHP sur des systèmes de production.

Si un serveur a été trouvé exécutant le build compromis :

  1. Supprimez immédiatement la version vulnérable.
  2. Passez à une version stable de PHP.
  3. Partez du principe que la compromission est totale.
  4. Faites tourner tous les identifiants.
  5. Auditez la présence de webshells.
  6. Examinez les journaux d'authentification.
  7. Inspectez les tâches planifiées et les mécanismes de persistance.
  8. Reconstruisez le serveur si la compromission ne peut pas être exclue.

Leçons de sécurité

Cet incident a démontré plusieurs leçons importantes :

  • Les builds de développement ne doivent jamais être exposés publiquement.
  • Les chaînes d'approvisionnement logicielles sont des cibles de choix pour les attaquants.
  • La signature de code et la sécurité de l'infrastructure sont essentielles.
  • Les dépôts de code source nécessitent une surveillance continue.
  • De petites modifications de code peuvent cacher des vulnérabilités catastrophiques.
  • La confiance accordée aux logiciels en amont doit toujours être vérifiée.

La compromission a accéléré les changements apportés à l'infrastructure de développement de PHP et a mis en évidence l'importance croissante de la sécurité de la chaîne d'approvisionnement logicielle dans l'ensemble du secteur. :contentReference[oaicite:3]{index=3}


Références

  • Discussion des développeurs de PHP concernant les commits malveillants
  • Rapports d'incident du dépôt source PHP
  • Publication de l'exploit par Packet Storm Security
  • Signature IPS de Juniper Threat Labs
  • Analyses techniques de la communauté
  • Recherche publique sur les exploits

Conclusion

La backdoor User-Agentt de PHP 8.1.0-dev reste l'un des exemples les plus significatifs d'attaque de la chaîne d'approvisionnement logicielle touchant un projet open source majeur. Plutôt que d'exploiter une faille de programmation, les attaquants ont inséré une backdoor cachée directement dans le code source du langage, permettant une exécution à distance non authentifiée de code PHP arbitraire via un en-tête HTTP User-Agentt spécialement conçu. Bien que les instantanés de développement compromis aient été rapidement retirés et qu'aucune version stable de PHP n'ait été affectée, l'incident a souligné l'importance critique de sécuriser l'infrastructure de développement logiciel, de vérifier la provenance du code et d'éviter le déploiement de builds de développement dans les environnements de production. Aujourd'hui, cette vulnérabilité est largement étudiée comme un cas marquant de la sécurité de la chaîne d'approvisionnement et rappelle que l'intégrité du processus de compilation logicielle est tout aussi importante que la sécurité du code lui-même.

Télécharger l’outil
TechniqueDescription
T1195Compromission de la chaîne d'approvisionnement
T1059Interpréteur de commandes et de scripts
T1505Composant logiciel serveur
T1105Transfert d'outil entrant
T1071Protocole de couche application
T1106API native
T1055Injection de processus (possible post-exploitation)
T1027Fichiers ou informations obscurcis
Aucun
À distanceOui