Abstrakt teknisk illustration på en djupt marinblå bakgrund: en glödande bärnstensgul nyckelsilhuett hänger till vänster från en enda vertikal tråd, och en tunn horisontell tråd löper från den åt höger in i en bakåtflyende vägg av höga frostat-glas-paneler. Tre av panelerna glöder varmt bärnstensgult bakifrån, resten förblir stålblå. En fin cyan båge med små markeringar stiger från nedre vänstra hörnet tvärs över väggen. Inga människor, logotyper eller läsbar text förekommer. OrcaRouter-logotypen sitter i en vit remsa längst ner till höger.
AI Safety Incidents

CrowdSec förlorade 170 privata repositorier på nio minuter på grund av en offboarding-lucka

Författare

Elias Hawthorne

Publiceringsdatum

Senaste modellerna · 20Visa alla modeller →
Benchmarks: Artificial Analysis · uppdateras dagligen
Tillbaka till alla inlägg

Den 22 maj 2026, mellan 05:52:29 och 06:01:33 UTC, använde någon som arbetade från en IP-adress i Toronto, Kanada, GitHub-kontot till en utvecklare som precis hade lämnat CrowdSec för att kopiera cirka 170 av det franska säkerhetsföretagets privata repositorier. CrowdSec publicerade den tidslinjen i sin egen incidentrapport den 18 september 2026 – det datum som AI-incidentarkivet tilldelar denna post – efter att ett arkiv med dess källkod dök upp på cyberbrottsmarknadsplatsen pwnforum den 16 september. Kontot fungerade fortfarande eftersom företaget medvetet hade lämnat utvecklarens GitHub-åtkomst öppen så att hen kunde slutföra visst arbete. Laptopen bakom det hade infekterats elva dagar tidigare av masken Mini Shai-Hulud som stjäl autentiseringsuppgifter, vilken TeamPCP spred via TanStacks npm-paket. Den här redogörelsen bygger på posten som registrerades den 18 september 2026, och hela det dokumenterade incidentbeståndet – där varje post har sin egen allvarlighetsgrad, konfidensgrad, markering för omtvistade uppgifter och källor – finns i the Orca AI Incident Archive, där denna kan läsas bredvid de andra fallen i leveranskedjan från samma år.

Stölden stannade inte vid kod. CrowdSecs rapport avslöjade också e-postadresserna till 83 användare, hämtade från en intern övervakningslista för datavetenskap och mestadels Gmail-konton, samt för- och efternamn, e-postadresser och investeringskontext för 51 potentiella investerare från 2020. Mot cirka 150 000 användare är 83 adresser en liten bråkdel; det är inte noll. Vd:n Philippe Humeau förbehöll sin personliga ursäkt för investerarna: "Att era namn och e-postadresser läckt ut är en fråga som vi kommer att diskutera direkt med er och de behöriga myndigheterna, och för detta ber jag personligen om ursäkt."

Vad nio minuter faktiskt innebar

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.

Git-posterna som GitHub lämnade tillbaka till CrowdSec börjar 05:52:32.138 UTC med en hämtning mot ett av företagets repositorier, och aktiviteten upphör 06:01:33. Arkivets siffra på omkring 170 privata repositorier kommer från dessa Git-data. I sin rapport beskriver Humeau exponeringen som "begränsad till CrowdSecuritys källkod, inklusive 130+ offentliga repositorier och många privata". DevOps.com, som rapporterade om incidenten den 24 september, angav det sammanlagda antalet offentliga och privata repositorier till omkring 300 – en större siffra än CrowdSecs egen siffra för privata repositorier, och en som företagets rapport inte anger.

Innehållet utgjorde det vanliga inventariet hos ett snabbväxande SaaS-företag: webbkonsolens källkod, distributions- och automatiseringsskript samt datavetenskapsskripten och modellerna bakom dess analys. Det känsligaste objektet som CrowdSec namnger är "konsensusalgoritmen" som avgör vilka IP-adresser som hamnar på dess blockeringslistor. Algoritmens arkitektur var redan offentlig, men dess mångfald och detektionströsklar var det inte, och dessa är nu kända. Humeau hävdar att trösklarna är ett rörligt mål och att styra konsensus fortfarande skulle kräva en stor, dyr serverflotta; företaget säger att det kan justera dem och håller utkik efter avvikelser.

Autentiseringsuppgifterna var den del som kunde ha gått mycket sämre. "Vi var mycket nära att vara rena", skrev Humeau. Den enda användbara hemligheten i dumpen var en token för AWS Simple Notification Service, begränsad till publicering i ett enda ämne. Någon testade den 17 augusti 2026 från IP 23.234.84.102, anropade GetCallerIdentity och ListTopics mot både dev- och env-ämnena och kom inte längre. De flesta andra tokens och hemligheter i koden hade återkallats eller roterats före läckan. CrowdSec säger att ingen åtkomst har gjorts till deras infrastruktur och databaser och att ingen kod har ändrats i öppenkällkodsprojektet, dess privata källkod eller dess byggpipelines.

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.

Varför kontot fortfarande fungerade

Offboardingsmissen är liten och specifik. När utvecklaren lämnade hade CrowdSec redan tagit bort dennes övriga åtkomster; GitHub-kontot hölls kvar, skrev Humeau, eftersom "vi skildes som vänner med vår utvecklare, och han ville slutföra lite arbete". Kontot togs bort från GitHub-organisationen den 25 maj, tre dagar efter att repona redan hade kopierats.

CrowdSec kunde inte se stölden vid det tillfället, och anledningen är värd att uttrycka exakt. OAuth-token fanns inte i organisationens granskningslogg eller i någon nuvarande medlems granskningslogg, och när någon väl började leta fanns den inte längre: den hade skapats, använts och upphört att gälla utan att lämna något spår som företaget kunde läsa. GitHub behåller bara Git-aktivitet under ett rullande sjudagarsfönster för organisationer som inte har ett enterprise-abonnemang, vilket CrowdSec självt påpekar. Genombrottet kom från GitHubs supportteam, som spårade tokenets hela livscykel och tillhandahöll Git-aktiviteten för det tvåtimmarfönster som omgav kopieringen. Det var så företaget kom fram till en tidigare anställds konto. Kopplingen tillbaka till TanStack kom från samma övning.

Det läckta arkivet bar sitt eget bevis. Filen .github/.git/config i det registrerade en origin-URL av formen oauth2:gho_xxxxxxxxx@github.com, vilket identifierade autentiseringsuppgiften som en GitHub OAuth-token och matchade TeamPCP:s dokumenterade metodik. CrowdSec säger att man kontrollerade utvecklarmaskiner för skadliga paket och inte hittade några av de bakdörrade TanStack-versionerna i sina egna repon – ett resultat som man beskriver som icke avgörande snarare än friande.

Vem gjorde det, och hur säker tillskrivningen är

CrowdSec tillskriver nedladdningen "en av grundarna av BreachForum och en medlem, diencracked", där medlemmens adress anges som diencracked@cock.li, med verksamhet från en IP i Toronto med maskinens tidszon inställd på UTC-4. Företaget lägger till ett eget förbehåll i samma mening: "Åtminstone är det vad Git-datan visar." Dark Readings rapport från den 22 september innehåller samma tillskrivning till BreachForum-grundaren och handtaget diencracked.

Den uppströms kampanjen är bättre dokumenterad än identiteterna bakom den. TanStacks paket försågs med bakdörrar den 11 maj 2026, då 84 skadliga versioner i 42 paket publicerades; The Hacker News registrerar komprometteringen som CVE-2026-45321 och hänvisar till TanStacks egen rådgivning för nyttolasten som stjäl autentiseringsuppgifter. CrowdSecs tidslinje noterar att TeamPCP – som CrowdSec spårar som UNC6780 – den 22 maj, samma dag som repository-kopian, tog på sig ansvaret för att ha komprometterat repositories som tillhör Mistral AI.

Vad som är fastställt, och vad som inte är det

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.

Fastställt: en kopia av omkring 170 privata repositorier ägde rum den 22 maj 2026, inom ett nio minuter långt fönster, med hjälp av en tidigare utvecklares fortfarande giltiga GitHub-konto – ett förlopp som rekonstruerats från GitHubs egna Git-aktivitetsloggar, inte antagits. Även fastställt genom företagets egen redogörelse: exponeringen av 83 användares e-postadresser och uppgifterna om 51 potentiella investerare, återkallandet den 25 maj, den undersökta SNS-tokenen, och konstaterandet att ingen kod ändrades och att ingen infrastruktur eller databas nåddes.

Inte fastställt: vilket förgiftat paket som nådde laptopen, och när. CrowdSec säger rakt ut att man inte identifierade något av dem. Företagets genomsökning av kodförrådet gav inget klart besked, och dess utvecklarmaskiner visade sig vara rena, vilket skär sig mot en laptop som enligt företaget självt var komprometterad. Luckan erkänns snarare än stängs.

Inte publicerat:GitHubs sida av utredningen. CrowdSec säger att GitHubs supportteam bekräftade TanStack-ursprunget, men The Hacker News noterar att företagets rapport inte innehåller några fynd från GitHub självt, och GitHub har inte publicerat sin egen redogörelse för tokenens livscykel.

Bekräftelse:Dark Reading, The Hacker News och DevOps.com rapporterade var och en om incidenten inom en vecka, och alla tre bygger på CrowdSecs rapport och TanStacks säkerhetsmeddelande i stället för på en oberoende forensisk undersökning av CrowdSecs system. Dark Reading tillför kommentarer från externa yrkesutövare, bland annat Denis Calderone från Suzu Labs, som kallade återkallelseförbiseendet ”sådant man sköter från dag ett”. En forskningsnotis från Cloud Security Alliance daterad 20 september upprepar sekvensen, men dokumentet har sin egen friskrivning om att det genererats med AI-hjälp och inte har genomgått officiell CSA-granskning – värt att känna till innan den räknas som ett andra oberoende fynd. Arkivet sätter konfidensen för posten till A, omstridd till falskt och verklig skada till sant.

Det första påståendet och korrigeringen

CrowdSecs första offentliga uttalande den 17 september sade att "inga klientdata, inloggning/lösenord, namn, organisation eller något annat läcktes, och CrowdSec lagrar inte personuppgifter eller klientloggar; påverkan är begränsad till CrowdSec." Det framförde också en teknisk hypotes: att en intern komponent hade försetts med en bakdörr för att stjäla en API-nyckel som kunde läsa privat kod.

Den mer utförliga rapporten ett dygn senare ersatte den hypotesen med den avgångne medarbetarens redogörelse och offentliggjorde de 83 adresserna och de 51 investerarna. The Hacker News beskriver detta som att det tidigare påståendet korrigerades. CrowdSecs egen framställning är snävare: de 83 adresserna kom från en datavetenskaplig övervakningslista snarare än kundregister, och investeraruppgifterna härrörde från 2020. Båda beskrivningarna kan vara sanna samtidigt — adresserna var inte kundkonton, och de var fortfarande personuppgifter i en dump som publicerats på ett kriminalforum. Företaget säger att det kommer att meddela de berörda användarna och investerarna och rapportera läckan till myndigheterna.

Vad förändrades efteråt?

Autentiseringsuppgifter och token som hittades i arkivet roterades under natten den 16 september och under den 17 september, och den återstående rotationen slutfördes följande morgon.

• Slutpunktsdetektering och respons är nu installerat på arbetsstationerna och de bärbara datorerna till personer som kommer i kontakt med CrowdSecs kodbas eller infrastruktur; företaget anger Aikido Security som produkten. Humeau medger att det borde ha varit på plats tidigare, och medger också att en tidigare anställds dator sannolikt inte körde det.

• Tröskelvärdena för konsensusalgoritmen som avslöjades i läckan justeras, med strängare övervakning av statistiska avvikelser i hela blocklistnätverket.

• Företaget har satt upp ett mål att korta ner samma respons – inventering, rotation, forensik och avslöjande – från 48 timmar till under 24.

• Berörda användare och investerare kontaktas direkt, och läckan rapporteras till myndigheterna, enligt företagets formulering.

Varför detta hör hemma i ett AI-incidentarkiv

AI-inslaget här är infrastrukturellt, och det är värt att vara precis om vad det innebär. Ingenting i CrowdSecs redogörelse beskriver ett AI-system som fattar ett beslut under intrånget; aktören var en person eller flera personer som använde en stulen token. Det som gör fallet till en incident inom AI-branschen är skadeomfånget. TanStacks bibliotek bygger gränssnitten i en stor del av modern programvara, masken som skördade tokenen är byggd för att ta autentiseringsuppgifter för moln, SSH och modellleverantörer i ett enda svep, och materialet som kopierades ut från CrowdSec omfattade skript och modeller för data science, inte bara applikationskod.

Samma kampanj nådde AI-företag direkt. I CrowdSecs tidslinje anges att TeamPCP gjorde anspråk på Mistral AI-repositorier den 22 maj, och The Hacker News rapporterar att två enheter tillhörande OpenAI-anställda drabbades, med obehörig åtkomst till en begränsad uppsättning interna kodförråd. Arkivet registrerar CrowdSec-fallet som det andra nedströms offret för TanStack-kompromissen i maj, efter de OpenAI-anställdas enheter.

Avståndet mellan kopian och upptäckten av den är den del som borde färdas. Kodförråden togs den 22 maj; CrowdSec fick kännedom om läckan den 16 september, när Fuites Info-teamet kontaktade företaget om inlägget på pwnforum – 117 dagar senare, och inte via sin egen övervakning. Mekanismen som gjorde fördröjningen möjlig var inte exotisk: ett konto som överlevde sitt syfte med tre dagar, en token som inte lämnade några spår i de loggar företaget kunde läsa, och utvecklarlaptoper utan slutpunktsdetektering. CrowdSec, ett företag som säljer hotdetektering, hade alla tre.