Abstracte technische illustratie op een diep marineblauw vlak: links hangt een gloeiende amberkleurige sleutelsilhouet aan een enkele verticale draad, en een dunne horizontale draad loopt ervan naar rechts een terugwijkende wand van hoge matglaspanelen in. Drie van de panelen gloeien van achteren warm amber, de rest blijft staalblauw. Een fijne cyaan boog met kleine maatstreepjes stijgt van linksonder over de wand omhoog. Er verschijnen geen mensen, logo's of leesbare tekst. Het OrcaRouter-logo staat in een witte strook rechtsonder.
AI Safety Incidents

CrowdSec verloor in negen minuten 170 privérepositories door een gat in het offboardingproces

Auteur

Elias Hawthorne

Publicatiedatum

Nieuwste modellen · 20Bekijk alle modellen →
Benchmarks: Artificial Analysis · dagelijks bijgewerkt
Terug naar alle berichten

Op 22 mei 2026, tussen 05:52:29 en 06:01:33 UTC, gebruikte iemand die werkte vanaf een IP-adres in Toronto, Canada, het GitHub-account van een ontwikkelaar die net bij CrowdSec weg was gegaan om ongeveer 170 privérepositories van het Franse beveiligingsbedrijf te kopiëren. CrowdSec publiceerde die tijdlijn in zijn eigen incidentrapport op 18 september 2026 — de datum die het AI-incidentarchief aan dit record toekent — nadat op 16 september een archief van zijn broncode op de cybercriminaliteitsmarktplaats pwnforum opdook. Het account werkte nog omdat het bedrijf de GitHub-toegang van de ontwikkelaar bewust open had gelaten zodat die wat werk kon afmaken. De laptop erachter was elf dagen eerder geïnfecteerd door de Mini Shai-Hulud-worm die inloggegevens steelt, die TeamPCP via de npm-pakketten van TanStack had verspreid. Deze beschrijving is gebaseerd op het record dat op 18 september 2026 is ingediend, en de volledige gedocumenteerde incidentenset — waarbij elke vermelding zijn eigen ernst, betrouwbaarheidsgraad, betwist-vlag en bronnen heeft — staat in het Orca AI Incident Archive, waar dit exemplaar naast de andere supplychainzaken uit hetzelfde jaar kan worden gelezen.

De diefstal bleef niet beperkt tot code. Het rapport van CrowdSec maakte ook de e-mailadressen bekend van 83 gebruikers, afkomstig van een interne datascience-monitoringslijst en grotendeels Gmail-accounts, plus de voor- en achternamen, e-mailadressen en investeringscontext van 51 potentiële investeerders uit 2020. Tegenover ongeveer 150.000 gebruikers is 83 adressen een kleine fractie; het is niet nul. Algemeen directeur Philippe Humeau bewaarde zijn persoonlijke excuses voor de investeerders: "Het lekken van uw namen en e-mailadressen is een kwestie die we direct met u en de bevoegde autoriteiten zullen bespreken, en daarvoor bied ik persoonlijk mijn excuses aan."

Wat negen minuten daadwerkelijk in beslag nam

Dark navy HTML timeline card with a faint grid, kicked 'crowdsec · 22 may to 18 september 2026 · times as published' and headed 'The nine minutes, and the 117 days after'. Two columns of timestamped rows. Left, headed 'Upstream, then the copy': 11 May, 84 malicious versions across 42 TanStack npm packages ship the Mini Shai-Hulud credential harvester; 22 May 05:52:29, the copy window opens with a first fetch logged at 05:52:32.138 UTC; 22 May 06:01:33, the window closes with about 170 private repositories copied from an IP in Toronto, machine timezone UTC-4; 25 May, the former developer's account is removed from the GitHub organisation, three days after the copy. Right, headed 'Before disclosure, then discovery': 17 August, the exposed AWS SNS token is probed from 23.234.84.102 and reaches no further than a single topic; 16 September 17:45, an archive of CrowdSec source code is published on the pwnforum marketplace; 16 September 20:00, the Fuites Info team contacts CrowdSec and a crisis cell is stood up; 17 September, token rotation begins and GitHub support traces the token's lifecycle; 18 September, the full report discloses 83 user email addresses and the details of 51 potential investors from 2020. A highlighted band reads 'The account was left open on purpose so a departing developer could finish some work. It was revoked on 25 May, after the repositories were already gone.' A footer cites CrowdSec's analysis of 18 September 2026. The OrcaRouter logo sits in a white strip at the bottom right.

De Git-records die GitHub aan CrowdSec teruggaf, beginnen om 05:52:32.138 UTC met een fetch tegen een van de repositories van het bedrijf, en de activiteit stopt om 06:01:33. Het cijfer van ongeveer 170 privérepositories in het archief komt uit die Git-gegevens. In zijn verslag beschrijft Humeau de blootstelling als "beperkt tot de broncode van CrowdSecurity, inclusief 130+ openbare repositories en veel private." DevOps.com, dat het incident op 24 september meldde, kwam op een gecombineerd aantal van ongeveer 300 openbare en private repositories — een groter aantal dan CrowdSec's eigen cijfer voor privérepositories, en een aantal dat het rapport van het bedrijf niet noemt.

De inhoud bestond uit de gebruikelijke spullen van een snelgroeiend SaaS-bedrijf: de broncode van de webconsole, deployment- en automatiseringsscripts, en de data-science-scripts en -modellen achter de analytics. Het meest gevoelige item dat CrowdSec noemt, is het "consensusalgoritme" dat bepaalt welke IP-adressen op zijn blocklists terechtkomen. De architectuur van het algoritme was al openbaar, maar de diversiteits- en detectiedrempels niet, en die zijn nu bekend. Humeau betoogt dat de drempels een bewegend doel zijn en dat het sturen van de consensus nog steeds een grote, dure vloot servers zou vereisen; het bedrijf zegt dat het ze kan aanpassen en let op afwijkingen.

De inloggegevens waren het onderdeel dat veel slechter had kunnen aflopen. "We zaten heel dicht bij schoon," schreef Humeau. Het enige bruikbare geheim in de dump was een AWS Simple Notification Service-token, beperkt tot publiceren op één enkel topic. Iemand testte het op 17 augustus 2026 vanaf IP 23.234.84.102, door GetCallerIdentity en ListTopics aan te roepen tegen zowel de dev- als de env-topics, en kwam niet verder. De meeste andere tokens en geheimen in de code waren vóór het lek ingetrokken of geroteerd. CrowdSec zegt dat zijn infrastructuur en databases niet zijn benaderd en dat er geen code is gewijzigd in het open-sourceproject, de private broncode of de build-pipelines.

Dark navy HTML card headed 'What left the building', kicked 'the exposure, as crowdsec counted it'. Five tiles across the top. 170, private repositories copied in the nine-minute window per the Git activity GitHub returned, noted 22 May 2026 05:52 to 06:01 UTC. 130+, public repositories the CEO says were also in the leak alongside many private ones, with a note that DevOps.com puts the combined figure at about 300. 83, user email addresses mostly Gmail drawn from a data-science monitoring list, out of roughly 150,000 users. 51, potential investors from 2020 with names, addresses and investment context, described as the group the CEO apologised to personally. 1, usable credential in the dump, an AWS SNS token scoped to one topic, probed 17 August from 23.234.84.102. Four smaller tiles below read: console source, the SaaS web console not open-sourced and not intended to be; data-science scripts and models, of little use without the data that trains them; automation scripts, deployment, QA and Slack bots that the company calls no-risk; consensus thresholds, the diversity and detection limits that were not public before. A highlighted band reads 'No infrastructure, no databases, no code changes, CrowdSec's finding. The data-science scripts and models and the blocklist consensus thresholds went with the source.' A footer cites CrowdSec on 18 September 2026, Dark Reading on 22 September and DevOps.com on 24 September. The OrcaRouter logo sits in a white strip at the bottom right.

Waarom het account nog steeds werkte

De offboardingfout is klein en specifiek. Tegen de tijd dat de ontwikkelaar vertrok, had CrowdSec diens andere toegang al ingetrokken; het GitHub-account bleef actief, schreef Humeau, omdat "we in goede verstandhouding uit elkaar zijn gegaan met onze ontwikkelaar, en hij wilde nog wat werk afronden." Het account werd uit de GitHub-organisatie verwijderd op 25 mei, drie dagen nadat de repositories al waren gekopieerd.

CrowdSec kon de diefstal op dat moment niet zien, en de reden daarvoor is het preciseren waard. Het OAuth-token stond niet in het auditlogboek van de organisatie of in dat van een huidig lid, en tegen de tijd dat iemand ging kijken, bestond het niet meer: het was aangemaakt, gebruikt en verlopen zonder een spoor achter te laten dat het bedrijf kon lezen. GitHub bewaart Git-activiteit slechts in een voortschrijdend venster van zeven dagen voor organisaties zonder enterpriseplan, zoals CrowdSec zelf opmerkt. De doorbraak kwam van het supportteam van GitHub, dat de volledige levenscyclus van het token traceerde en de Git-activiteit verstrekte voor het venster van twee uur rond het kopiëren. Zo kwam het bedrijf uit bij het account van een vertrokken medewerker. De link terug naar TanStack kwam uit dezelfde exercitie.

Het gelekte archief bevatte zijn eigen bewijs. De .github/.git/config daarin registreerde een origin-URL van de vorm oauth2:gho_xxxxxxxxx@github.com, waarmee de credential werd geïdentificeerd als een GitHub OAuth-token, wat overeenkomt met de gedocumenteerde methodologie van TeamPCP. CrowdSec zegt dat het ontwikkelaarsmachines heeft gecontroleerd op kwaadaardige pakketten en geen van de van een backdoor voorziene TanStack-versies in zijn eigen repositories heeft aangetroffen — een resultaat dat het als niet-beslissend beschouwt in plaats van als ontlastend.

Wie heeft het gedaan, en hoe stevig is de toeschrijving?

CrowdSec schrijft de download toe aan "een van de oprichters van BreachForum en een lid, diencracked", waarbij het adres van het lid wordt opgegeven als diencracked@cock.li, opererend vanaf een IP in Toronto met de tijdzone van de machine ingesteld op UTC-4. Het bedrijf voegt in dezelfde zin zijn eigen voorbehoud toe: "Althans, dat is wat de Git-gegevens laten zien." Het rapport van Dark Reading van 22 september bevat dezelfde toeschrijving aan de oprichter van BreachForum en de handle diencracked.

De upstream-campagne is beter gedocumenteerd dan de identiteiten erachter. De pakketten van TanStack kregen op 11 mei 2026 een backdoor, toen 84 kwaadaardige versies verspreid over 42 pakketten werden gepubliceerd; The Hacker News registreert de compromittering als CVE-2026-45321 en verwijst naar TanStack's eigen beveiligingsadvies voor de payload die inloggegevens steelt. De tijdlijn van CrowdSec vermeldt dat op 22 mei, dezelfde dag als de repositorykopie, TeamPCP — door CrowdSec gevolgd als UNC6780 — de verantwoordelijkheid opeiste voor het compromitteren van repositories die toebehoren aan Mistral AI.

Wat is vastgesteld, en wat niet

Dark navy HTML card headed 'Established, asserted, and simply absent', kicked 'crowdsec · what the record supports', subtitled 'The archive grades this record confidence A, disputed false, real harm true. That grade covers the event; it does not extend to every claim made about it.' Three columns. 'Established', green: about 170 private repositories copied on 22 May 2026 in a nine-minute window from GitHub's own Git activity records; the account belonged to a departed developer and was revoked 25 May, three days later; 83 user email addresses and the details of 51 potential investors from 2020 appeared in the published archive; no infrastructure or database access and no code altered, per CrowdSec's audit. 'Asserted, not proven', amber: that the laptop was infected through TanStack, since CrowdSec's dev machines came back clean and its repository scan was inconclusive; which poisoned package arrived and when, which CrowdSec says it did not establish; that the downloaders were a BreachForum founder and the member diencracked, offered as what the Git data shows. 'Missing from the record', grey: GitHub's own findings, since support traced the token but no GitHub statement appears in the report; any arrest, charge or court record tying a named person to the copy; any independent forensic examination of CrowdSec's systems. A highlighted band reads 'The strongest evidence in the case is a Git fetch log inside a two-hour window GitHub handed over on request. The weakest is an attribution hedged in the same sentence that makes it.' A footer cites CrowdSec on 18 September, The Hacker News on 19 September and Dark Reading on 22 September. The OrcaRouter logo sits in a white strip at the bottom right.

Vastgesteld: een kopie van ongeveer 170 privérepositories vond plaats op 22 mei 2026, binnen een tijdsbestek van negen minuten, met gebruik van het nog steeds geldige GitHub-account van een vertrokken ontwikkelaar — een reeks die is gereconstrueerd uit GitHub's eigen Git-activiteitsgegevens, niet afgeleid. Ook vastgesteld op basis van het eigen verslag van het bedrijf: de blootstelling van 83 e-mailadressen van gebruikers en de gegevens van 51 potentiële investeerders, de intrekking op 25 mei, het onderzochte SNS-token, en de bevinding dat er geen code is gewijzigd en geen infrastructuur of database is bereikt.

Niet vastgesteld: welk vergiftigd pakket de laptop heeft bereikt, en wanneer. CrowdSec verklaart ronduit dat het geen van beide heeft geïdentificeerd. De repositoriescan van het bedrijf was niet doorslaggevend, en de ontwikkelaarsmachines bleken schoon, wat moeilijk te rijmen valt met een laptop die volgens het bedrijf zelf gecompromitteerd was. De leemte wordt erkend in plaats van gedicht.

Niet gepubliceerd: GitHub's kant van het onderzoek. CrowdSec zegt dat het supportteam van GitHub de TanStack-oorsprong heeft bevestigd, maar The Hacker News merkt op dat het rapport van het bedrijf geen bevindingen van GitHub zelf bevat, en dat GitHub geen eigen verslag heeft gepubliceerd over de levenscyclus van het token.

Bevestiging:Dark Reading, The Hacker News en DevOps.com berichtten elk binnen een week over het incident, en alle drie bouwen voort op CrowdSecs rapport en TanStacks beveiligingsadvies in plaats van op een onafhankelijk forensisch onderzoek van CrowdSecs systemen. Dark Reading voegt commentaar toe van externe vakmensen, onder wie Denis Calderone van Suzu Labs, die de fout bij de intrekking "iets van de eerste dag" noemde. Een onderzoeksnotitie van Cloud Security Alliance van 20 september herhaalt de reeks, maar het document bevat zijn eigen disclaimer dat het met AI-assistentie is gegenereerd en geen officiële CSA-beoordeling heeft ondergaan — iets om te weten voordat het als een tweede onafhankelijke bevinding wordt geteld. Het archief beoordeelt de recordbetrouwbaarheid als A, betwist: onwaar, werkelijke schade: waar.

De eerste verklaring, en de correctie.

CrowdSec verklaarde op 17 september in zijn eerste publieke verklaring dat "er geen klantgegevens, login/wachtwoord, naam, organisatie of iets anders waren gelekt, en dat CrowdSec geen persoonsgegevens of klantlogs opslaat; de impact blijft beperkt tot CrowdSec." Het bedrijf opperde ook een technische hypothese: dat een interne component was voorzien van een backdoor om een API-sleutel te stelen waarmee privécode kon worden gelezen.

Het uitgebreidere verslag een dag later verving die hypothese door de verklaring van de vertrokken medewerker en maakte de 83 adressen en de 51 investeerders bekend. The Hacker News beschrijft dit als een correctie van de eerdere bewering. De eigen formulering van CrowdSec is beperkter: de 83 adressen kwamen uit een data-science-monitoringlijst en niet uit klantgegevens, en de investeerdersgegevens dateerden uit 2020. Beide beschrijvingen kunnen tegelijkertijd waar zijn: de adressen waren geen klantaccounts, en ze waren nog steeds persoonsgegevens in een dump die op een misdaadforum was gepubliceerd. Het bedrijf zegt dat het de getroffen gebruikers en investeerders zal informeren en het lek bij de autoriteiten zal melden.

Wat is er daarna veranderd?

• Inloggegevens en tokens die in het archief zijn aangetroffen, zijn geroteerd in de nacht van 16 september en gedurende 17 september, waarbij de resterende rotatie de volgende ochtend werd voltooid.

• Endpointdetectie en -respons is nu geïmplementeerd op de werkstations en laptops van mensen die met de codebase of infrastructuur van CrowdSec in aanraking komen; het bedrijf noemt Aikido Security als het product. Humeau geeft toe dat het eerder had moeten zijn ingevoerd, en geeft ook toe dat het onwaarschijnlijk is dat op de machine van een voormalige werknemer ermee werd gedraaid.

• De drempelwaarden van het consensusalgoritme die bij de leak zijn blootgelegd, worden aangepast, met strengere monitoring op statistische afwijkingen binnen het blocklist-netwerk.

• Het bedrijf heeft zich ten doel gesteld dezelfde respons — inventarisatie, rotatie, forensisch onderzoek en openbaarmaking — terug te brengen van 48 uur naar minder dan 24.

• Getroffen gebruikers en investeerders worden rechtstreeks benaderd, en het lek wordt bij de autoriteiten gemeld, in de bewoording van het bedrijf.

Waarom dit in een AI-incidentenarchief staat

De betrokkenheid van AI is hier infrastructureel, en het is de moeite waard precies te zijn over wat dat betekent. Niets in het verslag van CrowdSec beschrijft een AI-systeem dat tijdens de inbraak een beslissing neemt; de actor was een persoon of personen die een gestolen token gebruikten. Wat van deze zaak een incident in de AI-industrie maakt, is de omvang van de gevolgen. De bibliotheken van TanStack bouwen de interfaces van een groot deel van moderne software, de worm die het token heeft buitgemaakt is gemaakt om in één keer cloud-, SSH- en modelproviderreferenties buit te maken, en het materiaal dat uit CrowdSec is gekopieerd bevatte data-science-scripts en modellen in plaats van alleen applicatiecode.

Dezelfde campagne bereikte AI-bedrijven rechtstreeks. In de tijdlijn van CrowdSec staat dat TeamPCP op 22 mei de repositories van Mistral AI opeiste, en The Hacker News meldt dat twee apparaten van OpenAI-medewerkers zijn getroffen, met ongeoorloofde toegang tot een beperkte set interne code-repositories. Het archief registreert de CrowdSec-zaak als het tweede slachtoffer verderop in de keten van de TanStack-compromittering van mei, na die apparaten van OpenAI-medewerkers.

De afstand tussen de kopie en de ontdekking ervan is het deel dat zou moeten reizen. De repositories werden op 22 mei buitgemaakt; CrowdSec vernam op 16 september van het lek, toen het Fuites Info-team contact opnam met het bedrijf over het bericht op pwnforum — 117 dagen later, en niet via zijn eigen monitoring. Het mechanisme dat de vertraging mogelijk maakte, was niet exotisch: een account dat zijn doel met drie dagen overleefde, een token dat geen spoor achterliet in de logboeken die het bedrijf kon lezen, en laptops van ontwikkelaars zonder endpointdetectie. CrowdSec, een bedrijf dat dreigingsdetectie verkoopt, had alle drie.