S1ngularity-lek: GitHub en NPM getroffen 🚨
Recent onderzoek naar de supply chain-aanval, genaamd "s1ngularity", tegen Nx onthult een enorm inloggegevenslek: duizenden accounttokens en repository-geheimen werden blootgelegd, met gevolgen voor meerdere fasen van het incident. Een rapport van Wiz na het incident documenteert de omvang en biedt inzicht in hoe de exfiltratie zich ontwikkelde en de impact ervan. 🚨📊
Volgens de beoordeling die door Wiz-onderzoekers is gepubliceerd, heeft de inbreuk geleid tot de blootstelling van 2.180 accounts en 7.200 opslagplaatsen in drie afzonderlijke fasen, waarbij veel geheimen nog steeds geldig zijn en risico op aanhoudende schadeHet whitepaper geeft details over de tijdlijn, de technieken van de aanvallers en de aard van de gelekte geheimen. 🔍📈
De Nx Supply Chain-aanval ⚠️🚀
Nx is een open-source, single-repository build- en beheersysteem dat veel wordt gebruikt in JavaScript/TypeScript-ecosystemen op ondernemingsniveau. Met miljoenen wekelijkse downloads in het NPM-register heeft een gecompromitteerd pakket verstrekkende gevolgen voor talloze integraties en ontwikkelpijplijnen. ⚙️
Compromisvector en incidentdatum 📅
Op 26 augustus 2025 misbruikte de aanvaller een kwetsbare GitHub Actions-workflow in de Nx-repository om een schadelijke versie van het pakket te publiceren op NPM. Het pakket bevatte een schadelijk post-installatiescript met de naam "telemetry.js" dat fungeerde als malware voor het extraheren van inloggegevens op de getroffen systemen.
Hoe telemetry.js-malware werkt 🕵️♂️
De telemetry.js-malware fungeerde als een inloggegevensdief op Linux en macOS en probeerde GitHub-tokens, npm-tokens, SSH-sleutels, .env-bestanden, cryptocurrency-wallets en andere geheimen te stelen en deze vervolgens te uploaden naar openbare GitHub-repositories met de naam "s1ngularity-repository". Dit patroon stelde de aanvaller in staat de gestolen informatie te centraliseren en bloot te leggen. 🔐

Bron: Wiz
De aanvaller integreerde ook opdrachtregeltools voor AI-platforms (zoals Claude, Q en Gemini) om het zoeken en verzamelen te automatiseren met behulp van gerichte prompts. Wiz documenteert hoe de prompt zich tijdens de aanval heeft ontwikkeld, waarbij de extractie werd geoptimaliseerd en modelafwijzingen voor bepaalde instructies werden omzeild. Dit weerspiegelt de actieve afstemming van de aanvaller op LLM-technieken. ✨💡
Impactbereik: schaderadius en fasen 📈🔥
Het incident voltrok zich in drie fasen. In de eerste fase, tussen 26 en 27 augustus, troffen gecompromitteerde versies van Nx direct 1700 gebruikers en lekten ze meer dan 2000 unieke geheimen, naast het blootstellen van zo'n 20.000 bestanden van geïnfecteerde systemen. GitHub greep in, maar veel van de gegevens waren al gedupliceerd.
- 🔹 Fase 1 (26-27 augustus): 1.700 gebruikers getroffen, ~2.000 gelekte geheimen, 20.000 gecompromitteerde bestanden.
- 🔸 Fase 2 (28-29 augustus): Gelekte tokens worden gebruikt om privé-opslagplaatsen om te zetten in openbare opslagplaatsen; 480 extra accounts gecompromitteerd en 6.700 opslagplaatsen blootgesteld.
- 🔹 Fase 3 (vanaf 31 augustus): aanval gericht op een slachtofferorganisatie met behulp van accounts gecompromitteerd om te publiceren 500 extra privé-opslagplaatsen.
In de tweede fase gebruikten de aanvallers gestolen GitHub-tokens om privé-repositories openbaar te maken en ze te hernoemen met de tekenreeks 's1ngularity', waardoor de kwetsbaarheid werd vergroot. In de derde fase werd een specifiek doelwit uitgebuit om honderden extra privé-repositories te publiceren, wat de volharding en escalatie van de aanvaller aantoonde. 🎯

Bron: Wiz
Nx Projectrespons en -mitigatie 🔧✅
Het Nx-team publiceerde een analyse van de hoofdoorzaak op GitHub, waarin werd uitgelegd hoe een injectie in de titel van een pull-request, in combinatie met het onveilige gebruik van pull_request_target, ervoor zorgde dat willekeurige code met verhoogde rechten werd uitgevoerd, waardoor de publicatiepijplijn werd geactiveerd en de exfiltratie van het npm-publicatietoken werd vergemakkelijkt. 🛠️
De geïmplementeerde acties omvatten het verwijderen van kwaadaardige pakketten, het intrekken en roteren van gecompromitteerde tokens en het verplicht stellen van tweefactorauthenticatie voor alle uitgeversaccounts. Daarnaast heeft Nx het Trusted Publisher-model van NPM overgenomen en handmatige goedkeuring toegevoegd voor PR-getriggerde workflows. 🔐📌
Snelle tips en belangrijke punten ✏️
- ✅ Controleer en roteer tokens en geheimen onmiddellijk als er een vermoeden bestaat van inbreuk.
- 📌 Vermijd onveilig gebruik van pull_request_target en dwing handmatige goedkeuringen af voor gevoelige stromen.
- 🔧 Implementeer multi-factor-authenticatie en vertrouwde publicatiemodellen zoals Trusted Publisher.
- ⚡ Houd openbare opslagplaatsen in de gaten en voer geautomatiseerde geheime zoekopdrachten uit voor vroege detectie.
Snippets en veelgestelde vragen definiëren ✨
Wat is telemetry.js?
telemetry.js is de naam van het schadelijke post-installatiescript dat is opgenomen in de gecompromitteerde versie van het Nx-pakket. Het fungeerde als een inloggegevensstealer op Linux- en macOS-systemen om geheimen te verzamelen en te exfiltreren naar openbare opslagplaatsen die door de aanvaller worden beheerd. 🔍
Hoeveel accounts en opslagplaatsen zijn getroffen?
Volgens het rapport van Wiz werden bij de aanval 2.180 accounts en 7.200 opslagplaatsen blootgelegd tijdens de drie gedocumenteerde fasen van het incident. Veel geheimen zijn nog steeds geldig en er bestaat een risico op aanhoudende gevolgen. 📊
In 461 TP3T-omgevingen waren wachtwoorden gecompromitteerd, bijna het dubbele van de 251 TP3T-omgevingen het jaar ervoor. Download het Picus Blue Report 2025 voor een complete analyse van de preventie, detectie en trends van data-exfiltratie. 📈
Het rapport bevat statistieken, aanbevelingen en casestudies om de verdediging te versterken en de reactie op geheime lekken te verbeteren.