Cybersecurity-onderzoekers hebben een gecompromitteerde versie van de Nx Console-extensie gemarkeerd die is gepubliceerd op de Microsoft Visual Studio Code (VS Code) Marketplace.
De extensie in kwestie is rwl.angular-console (versie 18.95.0), een populaire gebruikersinterface en plug-in voor code-editors zoals VS Code, Cursor en JetBrains. De VS Code-extensie heeft meer dan 2,2 miljoen installaties. De Open VSX-versie is niet getroffen door het incident.
“Binnen enkele seconden nadat een ontwikkelaar een werkruimte had geopend, haalde de gecompromitteerde extensie stilletjes een versluierde payload van 498 KB op van een bungelende weescommit die verborgen was in de officiële nrwl/nx GitHub-repository”, aldus StepSecurity-onderzoeker Ashish Kurmi.
De payload is een ‘meerfasige tool voor het stelen van inloggegevens en het vergiftigen van de supply chain’ die ontwikkelaarsgeheimen verzamelt en deze exfiltreert via HTTPS, de GitHub API en DNS-tunneling. Het installeert ook een Python-backdoor op macOS-systemen die de GitHub Search API misbruikt als dead drop-resolver voor het ontvangen van verdere opdrachten.
In een maandag uitgegeven advies zeiden de beheerders van de extensie dat de hoofdoorzaak is terug te voeren op een van de ontwikkelaars, wiens machine werd gecompromitteerd tijdens een recent beveiligingsincident waarbij hun GitHub-inloggegevens lekten. Hoewel de aard van het eerdere ‘incident’ niet is bekendgemaakt, zijn de inloggegevens van de ontwikkelaar sindsdien tijdelijk ingetrokken.
Er wordt gezegd dat de toegang die door de inloggegevens wordt geboden, is misbruikt om een verweesde, niet-ondertekende commit naar nrwl/nx te pushen, die de stealer-malware introduceert. De kwaadaardige actie wordt geactiveerd zodra een ontwikkelaar een werkruimte in VS Code opent, wat leidt tot de installatie van de Bun JavaScript-runtime om een versluierde ‘index.js’-payload uit te voeren.
De malware voert controles uit om te voorkomen dat machines worden geïnfecteerd die zich waarschijnlijk in de Russische/GOS-tijdzones bevinden en lanceert zichzelf als een losstaand achtergrondproces om de workflow voor het verzamelen van inloggegevens op gang te brengen, waardoor het geheimen kan ophalen uit 1Password-kluizen en Anthropic Claude Code-configuraties, en geheimen die verband houden met npm, GitHub en Amazon Web Services (AWS).
“Eén mogelijkheid die opvalt: de payload bevat volledige Sigstore-integratie, inclusief de uitgifte van Fulcio-certificaten en het genereren van SLSA-herkomst”, aldus StepSecurity. “Gecombineerd met gestolen npm OIDC-tokens betekent dit dat de aanvaller downstream npm-pakketten kan publiceren met geldige, cryptografisch ondertekende herkomstattesten, waardoor de kwaadaardige pakketten verschijnen als legitieme, geverifieerde builds.”

Het Nx-team erkende ook dat “een paar gebruikers gecompromitteerd waren” als gevolg van deze inbreuk. Naast het aansporen van gebruikers om te updaten naar 18.100.0 of hoger, hebben de beheerders de volgende indicatoren van compromissen gepubliceerd:
- Nx Console versie 18.95.0 werd geïnstalleerd tijdens de blootstellingsperiode tussen 18 mei 2026, om 14:36 uur CEST en 14:47 uur CEST.
- Aanwezigheid van bestanden zoals ~/.local/share/kitty/cat.py, ~/Library/LaunchAgents/com.user.kitty-monitor.plist, /var/tmp/.gh_update_state of /tmp/kitty-*.
- Aanwezigheid van een van de volgende actieve processen: een Python-proces met cat.py en een proces met __DAEMONIZED=1 in zijn omgeving.
Getroffen gebruikers wordt aangeraden de bovengenoemde processen te beëindigen, artefacten op schijf te verwijderen en alle inloggegevens te roteren die bereikbaar zijn vanaf de getroffen machine, inclusief tokens, geheimen en SSH-sleutels.
Deze ontwikkeling markeert de tweede keer binnen een jaar dat het Nx-ecosysteem het doelwit is. In augustus 2025 werden verschillende npm-pakketten geïnfecteerd door een inloggegevensdief als onderdeel van een supply chain-aanvalscampagne genaamd s1ngularity. In tegenstelling tot de vorige iteratie richt de nieuwste aanval zich op de VS Code-extensie.
Schadelijke npm-pakketten in overvloed
De bevindingen vallen samen met de ontdekking van verschillende kwaadaardige pakketten in de open-sourcerepository’s –
- iceberg-javascript, supabase-javascript, auth-javascript, microsoft-applicationinsights-common en ms-graph-types: vijf npm-pakketten met een verborgen ELF-binair bestand dat Claude Code-sessies achter de deur houdt om inloggegevens van ontwikkelaars te stelen.
- noon-contracts: een npm-pakket dat een Noon Protocol smart contract SDK nabootst om SSH-sleutels, privésleutels van crypto-portemonnees, AWS-inloggegevens, Kubernetes-geheimen, alle .env-bestanden, shell-geschiedenis, Docker/Git/npm-tokens en opslagpaden voor browserportemonnees te exfiltreren.
- martinez-polygon-clipping-tony: een trojanized fork van martinez-polygon-clipping die een postinstall-hook gebruikt om een 17 MB PyInstaller-verpakte Windows remote access trojan (RAT) te downloaden die Telegram gebruikt voor command-and-control (C2) voor shell-uitvoering op afstand, het vastleggen van schermafbeeldingen, het uploaden/downloaden van bestanden en willekeurige Python-uitvoering.
- common-tg-service: een npm-pakket dat functionaliteit bevat om het Telegram-account van een slachtoffer over te nemen, terwijl het zich voordoet als ‘Gemeenschappelijke Telegram-service voor NestJS-applicaties’.
- exiouss: een npm-pakket dat een ChatGPT- en OpenAI-sessiecookie-stealer bundelt die zich richt op webbrowsers zoals Google Chrome, Microsoft Edge en Brave.
- k8s-pod-checker, dev-env-setup en node-perf-utils: drie npm-pakketten die deel uitmaken van het kube-health-tools-cluster en die een grote taalmodel (LLM) proxyservice op de machine van het slachtoffer installeren, waardoor de aanvaller LLM-verkeer via de gecompromitteerde server kan routeren
- Een gecoördineerde campagne voor het verzamelen van inloggegevens, georkestreerd door een Indonesisch sprekende bedreigingsacteur die gebruik maakt van een reeks 38 npm-pakketten die gebruik maakt van afhankelijkheidsverwarring als een manier om CI/CD-pijplijnen te misleiden om kwaadaardige openbare pakketten op te lossen vóór legitieme privépakketten die verband houden met onder meer Apple, Google en Alibaba.
- Een ongebruikelijke campagne waarbij zeven npm-pakketten onder de @hd-team-organisatie blijken te fungeren als stager voor configuraties die worden gebruikt door een Chinees sportgok- en illegaal streamingplatform genaamd Douqiu om te bepalen met welke backend-servers verbinding moet worden gemaakt.