Field Notes / Breach Analysis
Railway lost the keys its customers parked in it. Your PaaS holds your AI keys too.
On 21 October 2026 Railway told every user to rotate their secrets. Intruders had reached the systems that store customer environment variables and decrypted some of them. Railway paused all deployments, invalidated every API token and says the attack belongs to a campaign against platform companies aimed at AI inference providers. OpenCode and Zeabur were hit days earlier. Here is what Railway has confirmed, why your platform is where your AI keys are most exposed, and the rotation drill that makes the next breach a one-hour job.
01 What Railway has confirmed
ailway spotted anomalous activity in its environment variable systems on the morning of Wednesday 21 October. CEO Jake Cooper published the disclosure the same day. The company then did what a platform does when it cannot yet tell which customers were hit: it shut the doors for everyone Railway Status 2026 .
| Time (UTC) | What Railway did |
|---|---|
| 21 Oct, 11:33 | Builds paused in all regions; dashboard, API and CLI unavailable |
| 21 Oct, 22:37 | All Railway storage bucket credentials rotated |
| 22 Oct, 00:22 | Existing bucket credentials revoked |
| 22 Oct, 04:00 | Builds back for Enterprise customers |
| 22 Oct, 04:39 | All Railway API tokens invalidated |
| 22 Oct, 19:42 | New sign-ups paused |
| 22 Oct, 23:22 | Builds back for Free and Trial, the last of five plans |
Railway also notified upstream providers and asked them "to revoke all keys proactively" Railway 2026 . Read that sentence twice. A platform that asks your AI and cloud providers to kill your keys has concluded the keys are out.
Three things are still unknown. Railway has not said how many users were affected, beyond "a subset". It has not named the entry point or the attacker. And it has not said whether sealed variables, which cannot be read back from the dashboard, API or CLI, were in scope GitGuardian 2026 . Cooper told TechCrunch a post-mortem will follow TechCrunch 2026 . Until it does, the only safe reading is Railway’s own advice: every variable is exposed.
02 Three platforms in eight days
On 20 October we wrote about the OpenCode Console breach, where attackers took OpenAI, Anthropic and Google keys that users had saved in a half-retired system. That looked like one company’s bad week. Railway’s statement turns it into a pattern, and the dates line up.
| Platform | When | What left |
|---|---|---|
| Zeabur | 14 to 15 Oct | 3,218,965 environment variable records and 321,810 account records |
| OpenCode | 17 Oct | Stored third-party AI provider keys for 1.4% of Console users |
| Railway | 21 Oct | Encrypted environment variables, some decrypted; count not published |
Zeabur is the warning about where this ends. The Taiwanese platform says the intruder used leaked internal credentials stored in plaintext, including a shared-cluster admin token created on 10 January 2024 with no expiry Start With Identity 2026 . Zeabur confirmed root sign-ins on 101 Google Cloud servers, SSH keys added to 50 servers and 16 customer disk copies attached to virtual machines the attacker controlled. It suspects the credentials were taken in an earlier breach in August and never fully rotated. On 17 October the founder told customers the service will close. Shared-cluster services pause on 1 December and everything stops by 31 December 2026 BleepingComputer 2026 .
Zeabur has not linked its breach to the campaign Railway describes, so treat the three as related in target, unproven in actor. The target is what matters for your planning. All three platforms held secrets their customers had handed over so the code would run. TechCrunch also notes a CISA warning that China-based AI companies are running large-scale attacks on US companies to improve their own models TechCrunch 2026 . Stolen inference keys buy free model access at someone else’s expense. Platforms are where those keys sit in bulk.
03 Why your environment variables are the prize
Open the variables tab of any production service on a PaaS and count. A typical web app carries a database URL with the password inside it, an object storage key, a payment provider secret, an email API key, a GitHub token for private packages, and now one or two AI provider keys. Each came from a different dashboard. None of them knows it lives on Railway.
The platform sees all of them, for every customer, in one place. That is the design. A PaaS has to inject the plaintext value into your container at start-up, so somewhere in its estate a system can turn the encrypted copy back into the real key. An intruder who reaches that system reaches thousands of companies at once. Railway’s wording, encrypted variables with some contents decrypted, describes exactly that point of failure.
The second risk is the hop. The cloud key in your variables opens your
AWS or Google Cloud account. Railway published separate guides for
checking anomalous AWS, Google Cloud and GitHub access, and the AWS guide
tells you to search CloudTrail for RunInstances,
CreateUser, CreateAccessKey and
PutBucketPolicy, and to compare Cost Explorer against the
previous month Railway AWS guide 2026 .
Those are the moves of an attacker turning one leaked key into a foothold
that survives your rotation.
04 What to rotate first, and in what order
If you run anything on Railway, do this today. If you run on another PaaS, read it as the drill you will need when your platform sends the same email. Order matters. Changing the value in Railway does nothing if the old key still works at the provider.
- AI provider keys first. OpenAI, Anthropic, Google and any inference provider. These convert to money in minutes. Create a new key, update the variable, deploy, then revoke the old one at the provider and read the usage page back to 21 October.
- Cloud keys second. AWS, Google Cloud and Azure credentials. Create the replacement, deactivate the old key, then search the audit trail for new users, new access keys, new roles and instances in regions you do not use.
- Code and package access third. GitHub tokens, deploy keys and private registry credentials. Railway named registry credentials directly. A stolen registry token lets an attacker publish a poisoned package under your name.
- Data stores fourth. Database passwords, Redis URLs and object storage keys. Rotate the credential, then check connection logs for clients from outside Railway’s egress ranges.
- Everything else. Payment, email, SMS and webhook signing secrets. Railway API and project tokens created before the incident are already invalid, so recreate them and update the CI jobs that use them.
Rotate sealed variables too. Railway has not said they were outside the
breach, and GitGuardian gives the same advice
GitGuardian 2026 . Then check the
copies. The same key usually sits in a developer’s local
.env file, a CI secret store and a second environment. A key
revoked in one place and live in three others is still live.
05 Make the next platform breach a one-hour job
Most teams discover their secrets inventory on the day they need it. They open each service, copy each variable name into a spreadsheet and try to remember which dashboard issued it. That is how a rotation that should take an hour takes a week. Zeabur shows what an unrotated credential costs the platform. The same arithmetic applies to you.
- Build a secrets inventory from your platform variables: every key, which provider issued it, who owns it, what it opens and where else it is copied. Export the variable names from Railway, Vercel, Render, Fly.io or whatever you deploy on, and keep the list in your repo without the values
- Give each service its own scoped AI key with a hard monthly budget, so one leaked key cannot spend more than one service needs. Never share a single organisation-wide key across apps
- Turn on spend and usage alerts on every LLM provider account at a level just above normal daily use, sent to a channel someone reads at night. Some OpenCode victims saw the charges before the notification email
- Replace long-lived cloud keys in platform variables with short-lived credentials where the platform supports workload identity federation or OIDC. A token that expires in an hour is worth little a week after the breach
- Run a rotation drill: pick one production service, rotate every secret it holds with the provider-first order above, and time it. Write the runbook from what broke
- Alert on use of your cloud and AI keys from IP ranges outside your platform’s published egress addresses, so a stolen key shows up the first time someone else uses it
Railway did the right things fast. It paused every deployment, killed every token and told every customer to rotate. None of that brought the decrypted values back. Your exposure comes down to two numbers: how many live secrets your platforms hold, and how long your team takes to replace them all. We measure both in 14 days. You get the full inventory, what each secret opens, a tested rotation runbook and the alerts that catch the next stolen key on first use. Start with your Threat Map, from $5,000. Enterprise-grade. Not enterprise-priced.
References
Sources
- Railway (Jacob Cooper). Security Disclosure: Wednesday October 21st. 21 October 2026. blog.railway.com
- Railway Status. Incident QH8L8B3E, updates 21 to 23 October 2026. status.railway.com
- TechCrunch (Zack Whittaker). Developer platform Railway urges all users to revoke secret keys after cyberattack. 22 October 2026. techcrunch.com
- Cybersecurity News (Guru Baran). Railway Security Incident: Hackers May Have Accessed Customer Environment Variables. October 2026. cybersecuritynews.com
- GitGuardian. New Railway Incident: Treat Every Env Variable as Exposed. 22 October 2026. blog.gitguardian.com
- Railway. Security disclosure recommendation: check for anomalous AWS access. 22 October 2026. blog.railway.com
- BleepingComputer (Bill Toulas). Zeabur shutting down after second security breach in two months. 20 October 2026. bleepingcomputer.com
- Start With Identity. Zeabur to shut down after a non-expiring admin token opened its shared cluster. 19 October 2026. startwithidentity.com
- BleepingComputer. OpenCode hack exposes API keys amid AI distillation attacks. 19 October 2026. bleepingcomputer.com
- The Hacker News. Researchers Uncover “LLMjacking” Scheme Targeting Cloud-Hosted AI Models. May 2024. thehackernews.com