La version 18.95.0 de l’extension Nx Console pour VS Code a été compromise, avec un impact potentiel bien plus large qu’annoncé au départ.
Nx Console : l’extension VS Code piégée derrière l’incident GitHub
La version 18.95.0 de Nx Console a été publiée avec du code malveillant, dans un incident qui fait suite à l’accès non autorisé aux dépôts internes de GitHub.
Suite de l’incident GitHub dont je parlais ici :
GitHub confirme un accès non autorisé à ses dépôts internes
On connaît maintenant le nom de l’extension VS Code problématique : Nx Console.
Plus précisément, c’est la version 18.95.0 de l’extension qui a été compromise. D’après l’advisory publié sur GitHub, cette version malveillante a été disponible pendant environ 18 minutes sur le Visual Studio Marketplace, et environ 36 minutes sur OpenVSX.
Nx Console 18.95.0
La version corrigée à installer est :
Nx Console 18.100.0 ou plus récent
Au départ, Microsoft aurait indiqué 28 installations de la version malveillante. Mais côté Nx, les propres analytics racontent une histoire plus large : l’impact pourrait être bien plus élevé, avec potentiellement plus de 6 000 activations enregistrées côté VS Code.
C’est un bon rappel : le nombre d’installations remonté par une marketplace ne donne pas toujours une image complète de l’exposition réelle. Entre installations, activations, caches, forks et télémétrie partielle, il faut souvent attendre l’enquête complète pour avoir une vision fiable.
L’advisory indique que l’extension compromise récupérait une charge utile obfusquée visant à collecter des identifiants et secrets depuis plusieurs sources : tokens GitHub, npm, AWS, Vault, clés privées, fichiers de configuration, variables ou encore sessions actives.
Les données pouvaient ensuite être exfiltrées via HTTPS, GitHub API et DNS.
Côté signes de compromission, les mainteneurs recommandent de vérifier notamment la présence de la version 18.95.0, mais aussi certains fichiers ou processus suspects.
~/.local/share/kitty/cat.py
~/Library/LaunchAgents/com.user.kitty-monitor.plist
/var/tmp/.gh_update_state
/tmp/kitty-*
Si la machine a pu être touchée, la réponse ne doit pas se limiter à mettre à jour l’extension.
À faire :
- mettre Nx Console à jour en 18.100.0 ou plus récent
- tuer les processus suspects liés à `cat.py` ou `__DAEMONIZED`
- supprimer les artefacts de persistance listés dans l’advisory
- faire tourner les tokens, secrets et clés SSH accessibles depuis la machine
- auditer les logs d’accès des comptes utilisés sur le poste
C’est typiquement le genre d’incident où “j’ai désinstallé l’extension” ne suffit pas forcément. Si l’extension a eu le temps de récupérer des credentials, le vrai sujet devient la rotation des secrets et l’analyse des accès derrière.
Les mainteneurs expliquent aussi avoir durci leur pipeline de publication. Avant l’incident, un seul membre de l’organisation pouvait publier une nouvelle version de Nx Console. Désormais, deux administrateurs doivent approuver manuellement une release.
C’est une mesure assez logique : dans une attaque supply chain, le compte ou le poste d’un mainteneur devient souvent le point d’entrée le plus rentable.
Pour les développeurs, le message est clair : les extensions d’éditeur ne sont pas de simples gadgets. Une extension VS Code peut avoir accès à un environnement de travail très riche : dépôts, terminaux, tokens, fichiers de configuration, clés, variables, historiques.
Et quand elle est compromise, l’impact peut vite dépasser la machine locale.
Advisory Nx Console GHSA-c9j4-9m59-847w
Post précédent sur l’incident GitHub