CVE-2026-6951 : exécution de code à distance critique CVSS 9.8 dans le paquet npm simple-git via bypass du correctif CVE-2022-25912. Mise à jour 3.36.0 obligatoire.
En bref
- CVE-2026-6951 : RCE critique CVSS 9.8 dans le paquet npm simple-git, dépendance massivement utilisée dans les pipelines CI/CD Node.js
- Toutes les versions de simple-git antérieures à 3.36.0 sont vulnérables, y compris en dépendance transitive
- Mettre à jour immédiatement vers simple-git 3.36.0 ou supérieur et auditer toutes les surfaces qui reçoivent des arguments contrôlés par l'utilisateur
Les faits
Publiée le 25 avril 2026, la vulnérabilité CVE-2026-6951 affecte simple-git, une bibliothèque npm omniprésente qui sert d'enveloppe Node.js pour les commandes git. Notée 9.8 sur l'échelle CVSS par le NVD, la faille permet à un attaquant non authentifié d'obtenir une exécution de code arbitraire à distance sans aucune interaction utilisateur. La racine du problème est un correctif incomplet pour CVE-2022-25912 : le patch d'origine bloquait l'option -c mais oubliait son équivalent long --config. Un attaquant qui peut influencer les arguments passés à simple-git peut donc activer protocol.ext.allow=always puis exploiter une source de clonage ext:: pour exécuter des commandes système arbitraires sur le serveur hôte. Le NVD comme l'avis Snyk classent l'attaque en vecteur réseau, complexité faible, sans privilège ni interaction (AV:N/AC:L/PR:N/UI:N), avec un impact maximal sur la confidentialité, l'intégrité et la disponibilité.
Le code vulnérable est exposé dès qu'une application accepte une option de clone, une URL de dépôt distant ou un argument git provenant d'une source extérieure : formulaire web, webhook GitHub, API REST de plateforme DevOps, ticket interne ou import IaC. Plusieurs dizaines de milliers de paquets npm dépendent transitivement de simple-git, ce qui démultiplie la surface d'attaque réelle.
Impact et exposition
simple-git cumule plusieurs millions de téléchargements hebdomadaires sur npm. Elle est embarquée dans des outils de scaffolding, des plateformes CI/CD, des bots GitHub, des intégrations IaC, des générateurs de boilerplate et de très nombreux services SaaS internes. Tout endpoint qui transmet une URL de dépôt fournie par un tiers à git.clone() ou un appel similaire constitue un point d'entrée exploitable. L'exécution se fait dans le contexte du processus Node.js appelant, donc avec les permissions de service du backend : accès aux secrets, aux variables d'environnement, aux tokens CI et au système de fichiers.
Aucun PoC public détaillé n'a encore été publié au moment de la rédaction, mais la portée du correctif et la simplicité de la chaîne d'exploitation rendent l'apparition d'exploits automatisés très probable dans les jours qui viennent. La vulnérabilité s'inscrit dans la lignée des récentes RCE via dépôt git malveillant qui ciblent les chaînes d'intégration continue.
Recommandations immédiates
- Mettre à jour
simple-gitvers la version 3.36.0 ou supérieure dans tous lespackage.jsonet lockfiles, puis régénérer lesnode_modules - Auditer le code applicatif pour identifier tous les points où une URL de dépôt ou une option git transite via simple-git, et appliquer une liste blanche stricte (validation regex, refus du préfixe
ext::, des protocoles non standards et de toute cléconfigcontrôlée par l'utilisateur) - Pour les pipelines CI/CD, isoler les jobs de clone dans des conteneurs jetables sans accès réseau sortant ni secrets persistants
- Surveiller les processus enfants
gitexécutés avec des arguments contenantprotocol.ext.allow,core.sshCommandou des sourcesext:: - Recensement du parc :
npm ls simple-git,yarn why simple-gitou un scan SCA (npm audit, OSV-Scanner) sur tous les dépôts
⚠️ Urgence
Le score CVSS 9.8 et le caractère pré-authentifié de la faille placent cette vulnérabilité dans la catégorie « patcher en moins de 72 heures ». Toute application web ou pipeline CI qui accepte une URL git ou une option de clone doit être considérée comme exposée jusqu'à preuve du contraire. Voir aussi l'exploitation en 10 heures de Marimo pour mesurer la vitesse de transformation d'une telle CVE en attaque opportuniste.
Comment savoir si je suis vulnérable ?
À la racine de chaque projet Node.js, exécuter npm ls simple-git ou yarn why simple-git et lire la version résolue. Toute version inférieure à 3.36.0 est vulnérable, y compris en dépendance transitive. Pour un parc entier, scanner les package-lock.json avec un outil SCA (npm audit, Snyk, Dependabot, OSV-Scanner) en filtrant sur l'identifiant CVE-2026-6951.
Que faire si la mise à jour est bloquée ?
Si une dépendance amont impose une vieille version de simple-git, refactorer le code appelant pour ne jamais transmettre d'argument contrôlé par l'utilisateur dans le tableau d'options, supprimer toute prise en charge de sources de clone non standards (ext::, file://) et placer le service derrière un WAF qui rejette les chaînes contenant protocol.ext. Voir notre dossier RCE via input non assaini pour un cas comparable.
Votre infrastructure est-elle exposée ?
Ayi NEDJIMI réalise des audits ciblés pour identifier et corriger vos vulnérabilités.
Demander un auditÀ propos de l'auteur
Ayi NEDJIMI
Auditeur Senior Cybersécurité & Consultant IA
Expert Judiciaire — Cour d'Appel de Paris
Habilitation Confidentiel Défense
ayi@ayinedjimi-consultants.fr
Ayi NEDJIMI est un vétéran de la cybersécurité avec plus de 25 ans d'expérience sur des missions critiques. Ancien développeur Microsoft à Redmond sur le module GINA (Windows NT4) et co-auteur de la version française du guide de sécurité Windows NT4 pour la NSA.
À la tête d'Ayi NEDJIMI Consultants, il réalise des audits Lead Auditor ISO 42001 et ISO 27001, des pentests d'infrastructures critiques, du forensics et des missions de conformité NIS2 / AI Act.
Conférencier international (Europe & US), il a formé plus de 10 000 professionnels.
Domaines d'expertise
Ressources & Outils de l'auteur
Testez vos connaissances
Mini-quiz de certification lié à cet article — propulsé par CertifExpress
Articles connexes
CVE-2026-33725 : RCE Metabase Enterprise via H2 JDBC
CVE-2026-33725 : RCE et lecture de fichiers dans Metabase Enterprise via injection H2 JDBC INIT lors d'un import de sérialisation. PoC public disponible.
CVE-2026-32157 : RCE Remote Desktop Client Microsoft
CVE-2026-32157 : RCE use-after-free CVSS 8.8 dans le client Microsoft Remote Desktop. Tout serveur RDP malveillant exécute du code sur le poste qui s'y connecte.
CVE-2025-2749 : RCE Kentico Xperience inscrite au KEV CISA
CVE-2025-2749 : path traversal Kentico Xperience vers RCE, ajoutée au KEV CISA le 20 avril 2026. Échéance fédérale fixée au 4 mai 2026.
Commentaires
Aucun commentaire pour le moment. Soyez le premier à commenter !
Laisser un commentaire