Nx Console : l'extension VS Code piégée qui moissonne les secrets dev
- Nx Console 18.95.0 (corrige en 18.100.0)
Cette vulnérabilité est inscrite au catalogue des vulnérabilités activement exploitées de la CISA. Traitement prioritaire recommandé.
Le contexte
C'est le maillon central de la campagne Mini Shai-Hulud (KEV 27 mai), et le plus parlant de son chaînage. Sept jours avant l'attaque sur Nx, le payload voleur d'identifiants distribué via la compromission TanStack (CVE-2026-45321) avait silencieusement exfiltré le jeton OAuth GitHub CLI d'un contributeur Nx légitime.
Avec cet accès, l'attaquant a publié la version piégée 18.95.0 de l'extension sur le Visual Studio Marketplace et Open VSX le 18 mai, en se faisant passer pour un contributeur core. La fenêtre d'exposition fut courte - de l'ordre de 11 minutes sur le Marketplace et ~36 minutes sur Open VSX - mais l'auto-update a suffi à propager la version. L'extension cumule 2,2 millions d'installations.
La mécanique
L'extension compromise (CWE-506) récupérait un payload obfusqué qui moissonnait un large éventail de secrets sur la machine du développeur, sur disque comme en mémoire.
Indicateurs de compromission
Sur les postes affectés :
- Fichiers :
~/.local/share/kitty/cat.py,~/Library/LaunchAgents/com.user.kitty-monitor.plist,/var/tmp/.gh_update_state,/tmp/kitty-* - Processus : un process Python exécutant
cat.py; tout process avec__DAEMONIZED=1dans son environnement.
Remédiation
- Mettre à niveau vers Nx Console 18.100.0 ou supérieur (version saine).
- Pour tout poste ayant eu l'auto-update actif pendant la fenêtre : présumer la compromission, supprimer les artefacts de persistance ci-dessus, et faire tourner tous les identifiants atteignables depuis la machine (tokens GitHub, clés SSH, secrets cloud, cookies de session).
Mettre à jour l'extension sans révoquer les secrets volés ne résout rien.
Ce qu'il faut retenir
Onze minutes de fenêtre publique ont suffi, parce que l'auto-update transforme une marketplace officielle en canal de distribution instantané. Le poste de développeur est ici l'actif sensible : il concentre tokens, clés et accès cloud. La fermeture de l'incident se mesure en secrets rotés, pas en numéro de version.
- Kreomnis
Références
- nvd NVD - CVE-2026-48027
- cisa CISA KEV
- vendor Avis de sécurité Nx (GitHub)