Extension Nx Console compromise : un cauchemar de chaîne d'approvisionnement pour les développeurs VS Code
Une version compromise de l'extension Nx Console pour **Microsoft** Visual Studio Code (**VS Code**) a été découverte, représentant un risque significatif pour la chaîne d'approvisionnement. L'extension malveillante, version 18.95.0 de `rwl.angular-console`, récolte silencieusement les secrets des développeurs et installe une backdoor Python sur les systèmes macOS.
Des chercheurs en cybersécurité ont découvert une attaque de la chaîne d'approvisionnement ciblant les développeurs utilisant l'extension **Nx Console** dans le **VS Code** Marketplace de **Microsoft**.
### Détails de l'extension compromise
L'extension affectée est `rwl.angular-console` (version 18.95.0), un outil populaire avec plus de 2,2 millions d'installations pour les éditeurs de code comme **VS Code**, Cursor et JetBrains. La version Open VSX reste inchangée. Selon Ashish Kurmi, chercheur chez **StepSecurity**, "En quelques secondes après qu'un développeur ouvre un espace de travail, l'extension compromise a silencieusement récupéré et exécuté une charge utile obfusquée de 498 Ko à partir d'un commit orphelin suspendu caché dans le dépôt officiel nrwl/nx sur GitHub".

### Techniques de charge utile et d'exfiltration
La charge utile est décrite comme un "outil d'exfiltration de credentials multi-étapes et d'empoisonnement de la chaîne d'approvisionnement" qui exfiltre les secrets des développeurs via HTTPS, l'API GitHub et le tunneling DNS. Elle installe également une backdoor Python sur les systèmes macOS, exploitant l'API GitHub Search pour les communications de commande et de contrôle (C2).
### Cause profonde et atténuation
Les mainteneurs de l'extension ont attribué la violation à une machine de développeur compromise, entraînant la fuite des identifiants GitHub. Ces identifiants ont été utilisés pour pousser un commit orphelin et non signé contenant le malware dans le dépôt `nrwl/nx`. Le code malveillant est déclenché lorsqu'un développeur ouvre un espace de travail dans **VS Code**, installant le runtime JavaScript Bun pour exécuter une charge utile obfusquée "index.js".
Le malware évite d'infecter les machines dans les fuseaux horaires russes/CEI et fonctionne comme un processus d'arrière-plan détaché. Il cible les secrets de diverses sources, notamment les coffres-forts **1Password**, les configurations **Anthropic Claude Code**, npm, GitHub et **Amazon Web Services (AWS)**.
### Intégration Sigstore et empoisonnement de la chaîne d'approvisionnement
"Une capacité qui se démarque : la charge utile contient une intégration Sigstore complète, y compris l'émission de certificats Fulcio et la génération de provenance SLSA", a noté **StepSecurity**. Cela permet aux attaquants de publier des packages npm malveillants avec des attestations de provenance valides et signées cryptographiquement, leur donnant une apparence légitime.

### Étapes de remédiation
L'équipe **Nx** a reconnu que "quelques utilisateurs ont été compromis" et recommande de mettre à jour vers la version 18.100.0 ou ultérieure. Ils ont également fourni les indicateurs de compromission (IOC) suivants :
* Version 18.95.0 de Nx Console installée entre le 18 mai 2026, à 14h36 CEST et 14h47 CEST.
* Présence de fichiers tels que `~/.local/share/kitty/cat.py`, `~/Library/LaunchAgents/com.user.kitty-monitor.plist`, `/var/tmp/.gh_update_state`, ou `/tmp/kitty-*`.
* Présence d'un processus python exécutant `cat.py` ou d'un processus avec `__DAEMONIZED=1` dans son environnement.
Les utilisateurs affectés doivent terminer ces processus, supprimer les artefacts identifiés et faire pivoter tous les identifiants accessibles depuis la machine compromise, y compris les tokens, les secrets et les clés SSH.
### Attaques récurrentes sur l'écosystème Nx
Cet incident marque la deuxième fois que l'écosystème **Nx** est ciblé en un an. En août 2025, plusieurs packages npm ont été infectés par un voleur d'identifiants dans le cadre de la campagne d'attaque de la chaîne d'approvisionnement **s1ngularity**. Contrairement à l'attaque précédente, cet incident le plus récent cible directement l'extension **VS Code**.
### Hausse récente des packages npm malveillants
Cette découverte s'aligne sur une tendance plus large de packages malveillants trouvés dans les dépôts open-source, notamment :
* `iceberg-javascript`, `supabase-javascript`, `auth-javascript`, `microsoft-applicationinsights-common`, et `ms-graph-types` : Contenant un binaire ELF caché qui compromet les sessions **Claude Code**.
* `noon-contracts` : Usurpation d'identité d'un SDK de contrat intelligent Noon Protocol pour exfiltrer des identifiants et des clés sensibles.
* `martinez-polygon-clipping-tony` : Une fork trojanisée qui télécharge un cheval de Troie d'accès à distance (RAT) pour Windows contrôlé via Telegram.
* `common-tg-service` : Conçu pour détourner des comptes Telegram.
* `exiouss` : Regroupant un voleur de cookies de session ChatGPT et OpenAI.
* `k8s-pod-checker`, `dev-env-setup`, et `node-perf-utils` : Faisant partie des outils kube-health-tools installant un service proxy LLM.
* Une campagne coordonnée de récolte d'identifiants ciblant des géants de la technologie comme **Apple**, **Google** et **Alibaba** utilisant la confusion de dépendances.
* Sept packages npm sous l'organisation `@hd-team` agissant comme un stager pour les configurations utilisées par une plateforme de paris sportifs chinoise.