CrowdSec zegt dat een aanvaller op 22 mei ongeveer 170 private GitHub repos heeft gekopieerd. De toegang kwam volgens het bedrijf via een account van een medewerker die net het team had verlaten. Pas later werd duidelijk welke informatie in de kopie terechtkwam en hoe de keten van gebeurtenissen is verlopen.
In dit verhaal draait alles om een supply chain incident met TanStack npm-pakketten, waarbij aangepaste versies credentails stalen van ontwikkelomgevingen. CrowdSec koppelt de timing en sporen aan die aanval en beschrijft vervolgens wat er precies uit de private repositories is gehaald.
Van TanStack npm naar toegang tot private repositories
De aanval waarop CrowdSec doelt, begon op 11 mei. Toen werden volgens de berichtgeving 84 kwaadaardige versies van 42 TanStack npm-pakketten gepubliceerd. Installeren van zo’n versie zou code uitvoeren die onder meer GitHub-tokens, SSH-sleutels en cloudreferenties van de machine probeerde te stelen.
In de daaropvolgende periode zegt CrowdSec dat de kopie van eigen code plaatsvond met behulp van een GitHub OAuth-token dat aan het (voormalige) account van de medewerker was gekoppeld. CrowdSec stelt dat dit mogelijk werd omdat de GitHub-toegang van die medewerker open bleef om werk af te maken.
Wat er op 22 mei precies werd gekopieerd
Volgens CrowdSec verscheen de gekopieerde code op een online forum op 16 september. Daarbij zou niet alleen de broncode zijn gedeeld, maar ook e-mailinformatie van personen binnen het CrowdSec-ecosysteem.
Concreet noemt CrowdSec:
- 83 CrowdSec-gebruikers: e-mailadressen werden onderdeel van het gelekte archief.
- 51 potentiële investeerders uit 2020: namen, e-mailadressen en context over investeringen stonden volgens het bedrijf in de set.
Het bedrijf benadrukt bovendien dat de aanval niet leidde tot aanpassingen aan de code. CrowdSec zegt dat de aanvaller het account alleen gebruikte om te kopiëren, en dat de eigen infrastructuur en databases niet werden benaderd.
Waarom CrowdSec geen “sporen” in AWS zag
Een opvallend detail in het verhaal is dat CrowdSec in eigen AWS-systemen geen verdacht gedrag detecteerde. Het bedrijf legt uit dat het de accounttoegang van de medewerker uit zijn GitHub-organisatie verwijderde op 25 mei, drie dagen na de kopie. Die verwijdering kwam volgens CrowdSec maanden vóór het moment waarop men zelf met het lek bekend werd.
Daarnaast stelt CrowdSec dat de gebruikte token in de GitHub-logboeken geen relevante sporen achterliet die het bedrijf kon inzien. Zodra de organisatie het lek opmerkte, bestond de token volgens CrowdSec ook niet meer.
Om te bevestigen waar de token vandaan kwam, zou GitHub support de tokenhistorie hebben nagekeken en de vermoedens hebben onderschreven dat TanStack de bron van de compromis was.
Welke code zat in de ‘private’ lekkage
Volgens CrowdSec kwam de gelekte inhoud uit de private repositories en niet uit de openbare Security Engine. CrowdSec ontwikkelt een open-source engine die aanvallen op servers detecteert en gebruikers kunnen hun bevindingen delen. Daarbij hoort een gedeelde blocklist van kwaadaardige IP-adressen.
In de private kopie zouden onder meer onderdelen hebben gezeten zoals:
- de webconsole
- data science scripts en modellen
- automatiseringsscripts
- het consensusalgoritme dat bepaalt welke IP-adressen aan blocklists worden toegevoegd
Het bedrijf zegt dat de gelekte code bijna vier maanden oud was en ondertussen sterk was veranderd. Ook beschrijft CrowdSec dat de lekkage inzichten gaf in drempels van het consensusalgoritme—bijvoorbeeld hoeveel detecties vereist zijn voordat een IP-adres wordt geblokkeerd.
Volgens CrowdSec waren die drempels eerder niet publiek. Tegelijk geeft het bedrijf aan dat de blocklist volgens hen nog steeds niet te “vergiftigen” is: een aanvaller zou extreem veel detecties van meerdere vertrouwde engines in verschillende netwerken nodig hebben, tegen hoge kosten. CrowdSec kan die drempels ook aanpassen.
Welke credentials waren bruikbaar
CrowdSec stelt dat in de gelekte code vooral één credential bruikbaar leek: een referentie voor AWS SNS (notification service). Die token zou alleen berichten mogen publiceren naar één specifieke topic.
Er werd eerder geprobeerd die token in te zetten op 17 augustus, dus ongeveer een maand voordat de code op het forum verscheen. Volgens CrowdSec leverde dat geen bruikbare vervolgstap op.
Daarnaast zouden andere tokens in de set al zijn geroteerd, of van buitenaf niet bruikbaar zijn geweest—voor zover het bedrijf kan vaststellen.
Meer impact bij andere organisaties
De TanStack-compromis zou niet alleen CrowdSec hebben geraakt. Meerdere partijen meldden dat ontwikkelomgevingen betrokken waren. In het bericht staat dat Mistral AI melding maakte van een ontwikkelaarsapparaat dat bij de casus betrokken was, en dat OpenAI zei dat twee medewerkersapparaten werden beïnvloed. Daarbij ging het volgens OpenAI om ongeautoriseerde toegang tot een beperkte set interne code-repositories.
Dit onderstreept volgens velen het bredere risico van supply chain aanvallen: wanneer schadelijke npm-versies bij ontwikkelaars belanden, kunnen credentials op meerdere plekken doorsijpelen.
Wat dit betekent voor ontwikkelteams
Dit incident laat zien hoe snel een kettingreactie kan ontstaan van “een pakket installeren” tot “private code delen”. Zelfs als de aanvaller geen database-inbraak doet of systemen direct aanpast, kan het kopiëren van repositories al genoeg zijn voor datalekken en reputatieschade.
Daarom is het verstandig om als ontwikkelteam aandacht te besteden aan zowel preventie als detectie. Denk bijvoorbeeld aan het beperken van token-privileges, het periodiek roteren van credentials en het scherp bewaken van ontwikkelwerkstations.
Als je wilt begrijpen hoe supply chain misbruik in de praktijk doorwerkt naar misbruikbare toegangen, kan ook interessant zijn: wat er gebeurt bij supply chain aanvallen op grote schaal.
Snelle opvolging en lessen voor de toekomst
CrowdSec zegt dat getroffen credentials zijn geroteerd op 16 en 17 september. Ook geeft het bedrijf aan dat het op dat moment geen endpointbescherming eiste op ontwikkelaarsmachines, maar dat dit later wel is ingevoerd voor medewerkers die met de code of systemen werken.
Opvallend is ook de communicatie in twee stappen: de eerste verklaring stelde dat er geen clientdata, inloggegevens of bedrijfsinformatie was gelekt en dat de impact beperkt bleef tot het bedrijf. Later stelde CrowdSec dat de eerdere inschatting niet volledig overeenkwam met wat er daadwerkelijk in de private GitHub repos terechtkwam.
Voor organisaties is dat een belangrijke les: incidentrapportages kunnen evolueren zodra aanvullend bewijs beschikbaar komt, bijvoorbeeld uit logonderzoek of bevestigingen door platforms zoals GitHub.
Conclusie
CrowdSec koppelt de kopie van private GitHub repos aan een supply chain aanval via TanStack npm-pakketten. De aanvaller gebruikte een token van een ex-medewerker om in mei code te kopiëren, waarna in september het archief op een forum verscheen. Naast broncode stonden volgens CrowdSec ook e-mailgegevens en investeringscontext in de set.
Het incident toont hoe belangrijk het is om ook ontwikkelomgevingen serieus te beschermen en credentials proactief te beperken, rouleren en monitoren—zeker wanneer externe pakketten onderdeel zijn van je build- of deploymentproces.
Bron: https://thehackernews.com/2026/09/crowdsec-says-tanstack-npm-attack-led.html
