LLM API Key Exposure: The Incident Response Playbook (2026)
AI and LLM API keys have become a primary target. In the confirmed October 21, 2026 Railway security incident, the intruder was attempting to obtain AI-provider API keys (reportedly to run model-distillation attacks), and Railway says it worked with OpenRouter and other providers to revoke potentially compromised keys. Separately, a threat actor on an underground forum claims to be selling an OpenRouter user database (claimed ~250,000 users) and ~207,000 sk-or-v1 API keys — a claim that is UNVERIFIED and has not been confirmed by OpenRouter. Whether or not that specific listing is real, the lesson is the same: a leaked LLM key means unauthorized spend, data exposure and account takeover. This is a concrete, reusable incident-response playbook for suspected LLM/AI API-key exposure — prepare, detect, contain, eradicate, recover, learn — plus why these keys are such a prize and how to make the next leak a non-event.
AI and LLM API keys are now a primary attacker target. The confirmed October 2026 Railway incident went after AI-provider keys, and an unverified underground listing claims to sell an OpenRouter user database and keys. Whether or not that specific claim holds up, the response is the same — so here is a concrete incident-response playbook for suspected LLM/AI API-key exposure. First, the facts, kept honest.
What's confirmed vs. what's alleged
- Confirmed: In the October 21, 2026 Railway security incident, the intruder was attempting to obtain AI-provider API keys — reportedly to run model-distillation attacks — and Railway says it worked with OpenRouter and other providers to revoke potentially compromised keys (The Hacker News).
- Alleged / unverified: A threat actor claims to be selling an OpenRouter user database (claimed ~250,000 users) and ~207,000 keys in the sk-or-v1 format, with user and key fields. This claim is not independently verified and has not been confirmed by OpenRouter (coverage). Treat it as an allegation.
The point of this piece is not to adjudicate the sale listing. It is that AI keys are being hunted — so if you hold any, assume exposure is a question of when, and be ready.
Why AI API keys are such a prize
They convert straight to money and capability: a stolen key spends your LLM budget and, per the Railway report, can power distillation attacks that clone model behaviour at your expense. They are usually long-lived and over-permissioned — no expiry, broad scope — and scattered through code, CI logs, images and third-party platforms, so one compromised integration leaks many. It is the machine-identity problem wearing an AI hat.
The incident-response playbook
Six phases. Containment comes before forensics — a broken integration for ten minutes beats hours of attacker spend.
1. Prepare (before anything happens)
- Inventory every AI/LLM key, where it lives, and who owns it.
- Give each key a hard spend/rate cap and the narrowest scope that works.
- Write the rotation runbook now so the response is mechanical under pressure.
2. Detect & triage
- Confirm the exposure signal: a key in a public repo, a provider/partner breach notice, or anomalous usage.
- Pull the provider's per-key usage and billing logs — spend spikes, unfamiliar IPs/regions, unused models, off-hours calls.
- Classify blast radius: what can this key reach, and what data flows through it.
3. Contain (do this first)
- Disable the key immediately — for OpenRouter and similar providers, disable (not delete) so usage history is preserved for the investigation.
- Issue a replacement key, scoped and capped, and roll it out to the integration.
- Lower or freeze the spend cap on the account while you work.
4. Eradicate
- Find the root exposure — a leaked secret in code/CI (scan for it), a compromised third-party platform, or an over-shared key — and close it.
- Rotate any other secrets that shared the same exposure path (the blast radius from step 2), not just the one key.
5. Recover
- Verify the new key works and the old one is dead (test a call with the revoked key — it should fail).
- Restore normal spend caps once monitoring is clean.
- Reconcile the bill: dispute/flag any unauthorized spend with the provider.
6. Post-incident
- Write it up: timeline, root cause, what the key could reach, what you changed.
- Convert the one-off fixes into standing controls (short-lived keys, secrets manager, caps, ownership).
- Rehearse it — a key-exposure drill in the IR Playbook Lab turns this page into muscle memory.
Make the next leak a non-event
Short-lived, scoped, capped, owned, and out of code — that is the whole game. Plan rotation with the Key Rotation Planner, build the full runbook in the Incident Response Plan Builder, and when a key does leak, work it through the Leaked-Credential Response tool →. A governed key leaking is an inconvenience; an ungoverned one is a headline.
Frequently asked questions
Was OpenRouter breached? Not confirmed — the keys-for-sale listing is an unverified threat-actor claim. The confirmed event is the Railway incident, where AI keys were the target.
What do I do now? Rotate AI keys that could have been exposed (disable-then-recreate for OpenRouter), check usage logs, and set a hard spend cap.
First move in any key-exposure incident? Contain first — disable/rotate the key before you investigate.
How do I prevent the next one? Short-lived, scoped, capped, owned keys stored in a secrets manager, never in code or CI logs.
Ready to practise the decisions these articles describe?
Run a free War Room →