GitHub piraté via une extension VS Code compromise : ce qu’il faut savoir

Le 19 mai 2026, GitHub a confirmé qu’une extension Visual Studio Code compromise a permis à des attaquants d’exfiltrer environ 3 800 de ses propres entrepôts de code internes. L’incident, revendiqué par le groupe TeamPCP, révèle une faille dans la chaîne d’approvisionnement logicielle qui touche directement des millions de développeurs dans le monde.

🚨

L’essentiel en 30 secondes

  • Quoi : Une version piratée de l’extension VS Code « Nx Console » (CVE-2026-48027) a volé des identifiants GitHub d’un employé.
  • Impact : ~3 800 entrepôts internes GitHub exfiltrés, dont des secrets et clés d’accès.
  • Vecteur : L’extension a été publiée sur le VS Code Marketplace et est restée disponible ~18 minutes avant d’être retirée.
  • Qui : Le groupe TeamPCP revendique l’attaque et propose les données à la vente pour 95 000 $.
  • Risque pour vous : Si vous avez Nx Console installé avec mise à jour auto, vos tokens locaux peuvent être compromis.

Comment GitHub s’est fait pirater via sa propre extension

Le scénario est aussi simple qu’efficace. Un responsable de l’extension Nx Console (2,2 millions d’installations, éditeur vérifié) a vu ses identifiants GitHub compromis lors d’un incident de sécurité antérieur. Les attaquants ont utilisé ces accès pour pousser une version malveillante de l’extension directement sur le VS Code Marketplace officiel.

Cette version pirate (18.95.0) contenait un payload obfusqué de seulement 2 777 octets, injecté dans un fichier minifié. Lorsqu’un développeur ouvrait un espace de travail, le script collectait silencieusement :

  • Tokens GitHub : ghp_, gho_, ghs_, secrets Actions, mémoire processus
  • AWS : métadonnées IMDS/ECS, Secrets Manager, SSM, tokens Web Identity
  • Kubernetes & Vault : tokens d’authentification, ~/.vault-token
  • Npm : tokens .npmrc, échange OIDC
  • 1Password : contenu du CLI op si une session était active
  • Système : clés privées, chaînes de connexion, GCP/Docker credentials

L’attaque n’a pas visé GitHub directement. Elle a visé les outils que les développeurs de GitHub utilisent tous les jours. C’est toute la difference.

Date Événement
18 mai 2026 Publication de la version malveillante 18.95.0 de Nx Console sur VS Code Marketplace et Open VSX.
18 mai 2026 Un administrateur Nx retire la version compromise. Microsoft confirme le retrait à 12:48 UTC. L’extension était disponible ~18 minutes.
19 mai 2026 GitHub détecte l’accès non autorisé à ses entrepôts internes, retire la version, isole le poste et lance l’investigation.
19 mai 2026 GitHub confirme que les « secrets critiques » ont été tournés en priorité.
20 mai 2026 TeamPCP revendique l’attaque et propose les 3 800 entrepôts à la vente pour 95 000 $ via un partenariat avec Lapsus$.
20 mai 2026 La vulnérabilité reçoit l’identifiant officiel CVE-2026-48027.

Pourquoi 18 minutes ont suffi

Dix-huit minutes. C’est le temps pendant lequel la version compromise est restée accessible. Cela peut sembler court, mais c’est largement suffisant pour infecter des milliers de postes de développeurs.

Nx était initialement à 28 installations malveillantes signalées par Microsoft. Le PDG Jeff Cross a depuis révisé ce chiffre à plus de 6 000 installations potentielles, basé sur les analytics internes de Nx. La différence s’explique par le mécanisme de mise à jour automatique de VS Code : l’extension s’installe sans action humaine.

Le payload de 2 777 octets n’est pas un binaire. C’est du JavaScript en texte clair, injecté dans un fichier déjà minifié. Aucun antivirus classique ne le détecte : il n’y a pas de signature à matcher. Le script lit simplement des fichiers .env, des tokens et des clés SSH, exactement ce que chaque développeur fait des dizaines de fois par jour.

🔴 Données compromises chez GitHub

  • ~3 800 entrepôts : Repositories internes exfiltrés (TeamPCP).
  • Secrets & tokens : Clés GitHub Actions, tokens AWS, Kubernetes, Vault.
  • Identifiants employés : Les identifiants du responsable Nx Console compromis.

✅ Données non impactées

  • Données clients : GitHub confirme qu’aucune donnée stockée hors des entrepôts affectés n’a été touchée.
  • Infrastructure : Les services GitHub (Actions, Packages, etc.) n’ont pas été compromis.
  • Code utilisateur : Aucun entrepôt client externe n’a été directement visé.

TeamPCP : le groupe derrière l’attaque

Le groupe TeamPCP est spécialisé dans les attaques ciblant la chaîne d’approvisionnement logicielle. Leur modus operandi est clair : infecter des paquets et extensions populaires, exfiltrer des accès depuis les postes de développeurs, puis revendre les données.

Pour cette attaque, TeamPCP a d’abord exigé au moins 50 000 $, puis s’est associé avec le groupe Lapsus$ pour proposer les 3 800 entrepôts GitHub à 95 000 $. Le groupe précise qu’il ne s’agit pas d’une rançon mais d’une vente de données, et menace de les rendre publiques si aucun acheteur ne se manifeste.

🔍 Supply chain attacks : les précédents récents

Nx Console (mai 2026) CVE-2026-48027

Extension VS Code compromise, 2,2M d’installations. Payload de 2 777 octets collectant tokens, clés SSH et secrets cloud.

Durable Task Python SDK (2026) 28 Ko de code malveillant

Paquet PyPI compromis collectant des identifiants développeurs. Détecté en quelques heures par la communauté.

Mini Shai-Hulud / AntV (2025) Campagne multi-paquets

Injection de code malveillant dans l’écosystème AntV, exploitant la confiance des développeurs dans des bibliothèques vérifiées.

XZ Utils (mars 2024) Backdoor dans le noyau Linux

Un contributeur a infiltré le projet open source pendant 2 ans avant d’être découvert. L’attaque aurait compromis des millions de serveurs.

Que faire si vous utilisez Nx Console ou VS Code

Si vous êtes développeur et que vous utilisez des extensions VS Code, voici les mesures à prendre immédiatement :

1. Vérifiez vos extensions installées

Ouvrez VS Code, allez dans Extensions et vérifiez la version de Nx Console. Si vous voyez la version 18.95.0, supprimez-la immédiatement et réinstallez la dernière version saine. Activez l’option de révision manuelle des mises à jour si disponible.

2. Tournez tous vos tokens

Supposez que tous les secrets stockés localement sur votre machine ont été exposés :

  • Générez de nouveaux tokens GitHub (ghp_, gho_, ghs_)
  • Rotuez les clés AWS (IMDS, ECS, Secrets Manager)
  • Révoquez les tokens Kubernetes et Vault
  • Vérifiez vos fichiers .npmrc et .env
  • Changez les clés SSH si elles étaient sur le poste

3. Activez l’authenfication multifacteur (MFA)

Même si un token est volé, le MFA bloque l’accès. Utilisez une application d’authentification (Authy, Google Authenticator) ou une clé physique (YubiKey) pour vos comptes GitHub, AWS et cloud.

4. Examinez les logs d’accès

Consultez les journaux d’activité GitHub (Settings > Account > Security log) pour détecter toute activité anormale après le 18 mai. Vérifiez également les logs AWS CloudTrail et Kubernetes audit logs.

⚠️ Vigilance : Les attaques par supply chain ne disparaîtront pas

Le modèle d’attaque est simple et extrêmement efficace : infecter un outil que des millions de développeurs installent sans vérifier. Les EDR traditionnels ne détectent pas du JavaScript en texte clair qui lit des fichiers .env.

Si vous êtes responsable d’équipe, envisagez des solutions de protection spécifiques pour les postes de développement (Aikido Device Protection, blocage des paquets récents <48h, validation manuelle des extensions).

Comment se protéger des attaques supply chain

Cet incident met en lumière une vulnérabilité structurelle de l’écosystème de développement moderne. Voici les mesures de protection concrètes :

  1. Désactivez les mises à jour automatiques des extensions VS Code en production. Révisez chaque mise à jour avant de l’appliquer.
  2. Utilisez un gestionnaire de paquets sécurisé avec vérification d’intégrité (checksums, signatures).
  3. Appliquez le principe de moindre privilège sur vos tokens : un token GitHub ne doit avoir accès qu’aux repos nécessaires, pas à toute votre organisation.
  4. Isolez les postes de développement des environnements de production. Un poste compromis ne doit pas donner accès à la prod.
  5. Activez le MFA partout : GitHub, AWS, GCP, Azure, Kubernetes.
  6. Surveillez les journaux : configurez des alertes sur les activités anormales (nouveau token créé, accès depuis une IP inhabituelle).

Questions fréquentes

Qu’est-ce que CVE-2026-48027 ?

C’est l’identifiant officiel attribué à la vulnérabilité de l’extension Nx Console compromise. Elle couvre la publication non autorisée de la version 18.95.0 sur le VS Code Marketplace et Open VSX, qui a permis la collecte de secrets développeurs.

Suis-je touché si je ne suis pas développeur ?

Non, cette attaque cible spécifiquement les environnements de développement (VS Code, tokens GitHub, clés cloud). Si vous n’êtes pas développeur et n’utilisez pas ces outils, vous n’êtes pas directement concerné.

Les données GitHub sont-elles en vente sur le dark web ?

TeamPCP propose les 3 800 entrepôts à la vente pour 95 000 $. Il n’y a pas encore de confirmation que les données ont été vendues ou rendues publiques, mais le risque existe si aucun acheteur ne se manifeste.

Comment Nx a-t-il réagi ?

Nx a durci son pipeline de publication : désormais, deux administrateurs doivent approuver manuellement chaque nouvelle version de Nx Console. Les identifiants du responsable compromis ont été révoqués.

Quelle est la différence entre cette attaque et un ransomware ?

Un ransomware chiffre vos fichiers et demande une rançon pour les déchiffrer. Ici, il s’agit d’un vol de données silencieux : les attaquants collectent des identifiants sans que la victime ne s’en aperçoive. C’est plus discret et tout aussi dangereux.

Quiz : Connaissez-vous les risques supply chain ?

🧠 Testez vos connaissances sur la sécurité supply chain

1. Combien d’installations potentielles la version compromise de Nx Console a-t-elle eu ?

Laisser un commentaire