Railway schat het ongeautoriseerde AI-tokenverbruik na een inbraak op zijn platform op ongeveer $740.000, in een forensisch rapport dat het bedrijf op 10 november publiceert.
Voor teams die Railway gebruiken, draait de inzet om sleutels en rekeninghouders. Een API-sleutel voor een AI-provider kan in een opgeslagen variabele staan. Een ander kan die gebruiken terwijl de factuur bij de organisatie blijft. Railway adviseerde alle klanten die vóór 21 oktober waren aangemeld om gevoelige variabelen te roteren; controle van gebruik bij iedere AI-provider geeft een tweede zicht op mogelijk misbruik.

De buildfout leidde naar de OIDC-fout
De nieuwe tijdlijn begint op 18 oktober, toen de aanvaller dummyaccounts aanmaakte. De eerste pogingen mislukten. Op 20 oktober om 07:28 UTC misbruikte de aanvaller een toen onbekende fout in het multi-tenant-bouwsysteem van Railway, waar meerdere builds op dezelfde virtuele machine draaiden. Daardoor kon de aanvaller gedeeltelijk uit de bestandsisolatie ontsnappen, bestanden op de hostmachine lezen en een buildtoken bemachtigen. Dat token was bedoeld om afgeronde containerimages naar Railway’s containerregister te sturen.
Dat token kreeg meer vertrouwen dan zijn taak vereiste. Railway’s interne Temporal-systeem voor achtergrondtaken accepteerde het als vertrouwde client. Via een API kon de aanvaller opgeslagen geschiedenissen van 353 builds lezen, inclusief verzegelde variabelen. De aanvaller haalde ook een momentopname van Railway’s interne monorepo op, een centrale broncoderepository. Dat gaf zicht op de interne architectuur en oude endpoints die een volgende route konden openen.
Om 13:58 uur ontdekte de dienstdoende engineer afwijkende API-aanroepen naar het register. Railway trok het buildtoken die avond in, maar de aanvaller had de gekopieerde code al gebruikt om verder te zoeken. Om 03:26 UTC op 21 oktober leidde een verkeerd ingestelde vertrouwensregel voor OpenID Connect (OIDC) naar een kortlevend cloudtoken. Daarmee haalde de aanvaller interne inloggegevens en een SSH-sleutel op, en kreeg toegang tot een machine voor de orkestratie van klantworkloads. Cyber Security News beschrijft dezelfde route van de OIDC-fout naar de ontsleuteling van klantvariabelen.
Die machine kon bij de productiedatabase met versleutelde omgevingsvariabelen en had een langlopend toegangstoken om ze te ontsleutelen. Logboeken van de database tonen dat de aanvaller variabelenamen met patronen voor sleutels van AI-providers prioriteerde. Tussen 04:07 en 05:21 UTC werden versleutelde waarden opgehaald. Tussen 04:42 en 07:15 UTC zijn sommige waarden via de sleutelbeheerdienst ontsleuteld. Railway schakelde om 07:14 alle actieve cloudcredentials uit en stopte de builds opnieuw. Alle plannen konden uiterlijk 22 oktober om 22:49 UTC weer nieuwe deployments uitvoeren. Railway stelt dat de aanvaller na 09:25 UTC die dag geen toegang meer tot klantdata had.
De 100.000 blijft een bovengrens
Railway kan met de logboeken vaststellen dat in hoogstens 1,85 procent van de werkruimtes, ongeveer 100.000, omgevingsvariabelen konden zijn ontsleuteld. De logboeken wijzen naar een subset omgevingen, niet naar afzonderlijke variabelen. BleepingComputer benadrukt daarom dat 100.000 de bovengrens is, niet het bevestigde aantal werkruimtes waarvan sleutels zijn gestolen.
De ontsleutelde data omvatte ook gekoppelde accounttokens voor 1.852 gebruikers, waaronder GitHub OAuth-tokens en sleutels voor gekoppelde AI-agenten. Railway heeft die tokens ingetrokken en zegt geen inlogpogingen op Railway-accounts met de gestolen gegevens te hebben gezien. Het bedrijf vond ook geen bewijs dat klantdatabases zijn benaderd of dat repositories van klanten zijn gedownload.
Railway schat het ongeautoriseerde AI-tokenverbruik op $740.000. Het rapport stelt niet vast dat dit bedrag gelijk is aan de totale schade voor klanten. De terugbetaling hangt af van de provider.
AWS Bedrock en Google Gemini vergoeden fraude onder hun bestaande beleid. OpenAI en SpaceXSI bekijken claims per geval. Railway zegt de Anthropic-kosten voorlopig zelf te dragen. Ook de OpenRouter-kosten neemt Railway voor zijn rekening, omdat die provider geen terugbetaling aanbiedt. Het rapport noemt geen totaal van al vergoede bedragen of nog openstaande klantclaims.
Gestolen sleutels duiken op via meer routes
Railway plaatst de aanval in een bredere reeks inbraken bij platforms die AI-sleutels bewaren. Het noemt onder meer OpenCode, Warp en Fireworks AI als meldingen uit oktober. Railway zegt niet te hebben vastgesteld of de oorspronkelijke aanvaller ook diensten voor doorverkoop van gestolen AI-toegang beheerde. Wiz telde in oktober ten minste negen AI-ontwikkelplatforms die incidenten bekendmaakten. De openbare rapporten wijzen volgens Wiz niet op één gedeelde kwetsbaarheid of afhankelijkheid.
Ook de kostenroute is eerder waargenomen. Google Cloud schrijft dat Mandiant in afzonderlijke LLMjacking-incidenten meer dan $100.000 aan ongeautoriseerde kosten op één dag zag. Een van die campagnes verwerkte meer dan 500.000 modelverzoeken in minder dan acht uur. Die bedragen komen uit andere incidenten en zijn geen meting van Railway.
AI-sleutels kunnen ook via vertrouwde ontwikkelsoftware weglekken. In juni werden vijftien JetBrains-plug-ins met AI-sleuteldiefstal bijna 70.000 keer geïnstalleerd. Aikido waarschuwde dat het installatiecijfer de werkelijke impact niet vaststelt en mogelijk is opgeblazen. Bij Railway liep de toegang via platforminfrastructuur. Bij JetBrains stuurde een plugin de sleutel door die ontwikkelaars er zelf in opsloegen.
Het rapport beschrijft twee concrete toegangsroutes en koppelt die aan een schatting van ongeoorloofd AI-verbruik. Het laat het aantal werkelijk ontsleutelde individuele sleutels en het saldo na terugbetalingen open. Voor teams die AI-sleutels in platformomgevingen bewaren, blijven de logs per sleutel en per provider nodig om een onverwachte piek aan de eigen workload te koppelen.
Veelgestelde vragen
AI-sleutels onder controle
Ik kan meedenken over waar AI-sleutels thuishoren en hoe koppelingen en agents worden ingericht. Daarna ontwerp en bouw ik de hele oplossing tot livegang, self-hosted waar dat kan.
Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.

