Railway: your .env went for a ride without you
Railway says an intruder reached the store holding customer environment variables and decrypted some of them
Railway's preliminary report says variables were potentially compromised in at most 1.85% of workspaces (about 100,000). Precautionary provider resets affected more users. Services are restored for existing users; rotate stored secrets and recreate revoked deployment credentials.
- Disclosed
- Oct 21, 2026
- Updated Oct 27, 2026
- Severity
- Septic Tank Blew
- No CVE: a breach, not a bug
- Splash zone
- Secrets stored before Oct 21; vendor upper bound is 1.85% of workspaces (~100,000), with broader precautionary resets
- railway
- In the wild
- Not applicable
- An intrusion; the October 26 update gives a claims process, not verified misuse totals
The one-sentence version
Your hosting provider keeps a locked box of all your passwords so your apps can use them. Someone got into the room with the box, and for some customers they got it open.
What happened
Railway, a popular platform-as-a-service, initially said that on the morning of October 21, 2026 it detected unusual activity in the systems that store customer environment variables. That initial notice said an unauthorized party may have accessed the encrypted variables and, for some of them, obtained the decrypted contents. On Railway, environment variables are where apps keep their API keys, database passwords and registry credentials, so this is effectively a secrets store.
Railway believes the intrusion is part of a recent series of attacks on platform companies whose goal is to get at AI inference providers. It says it has asked those upstream providers to revoke keys proactively. The initial notice did not name them; its preliminary report identifies GitHub, GitLab, Anthropic, OpenAI, OpenRouter, SpaceXSI and Stripe among notified providers. Its usage-check guides also cover Grok.
What Railway did on its side
- Paused new builds and deployments during triage, including earlier October 20 interruptions. Builds came back for Enterprise around 03:30 UTC on Oct 22, with other plans following in stages.
- Invalidated OAuth sessions (users get logged out).
- Reset every storage bucket’s S3 credentials and the GitHub tokens Railway held for account connections, and removed GitHub tokens stored as registry credentials. These resets show in workspace audit logs under “Railway Staff”.
- Asked upstream providers to revoke keys; the initial notice left them unnamed, and the preliminary report now identifies several.
Railway can’t rotate your third-party secrets for you: the Stripe key, the OpenAI key and the database password in your variables are yours to roll. And because containers only read variables at startup, any rotation needs a redeploy, which was impossible while builds were paused.
Why L4
Railway says the impact “may be limited to a subset of users”, yet tells all users to rotate. It confirms that decrypted secrets were obtained for at least some customers. A breach of a multi-tenant secrets store at a large PaaS is a mass credential leak, and each leaked key opens a different downstream system. That is L4. It would move up if large-scale abuse of the stolen keys were confirmed.
What’s still unclear
- Initial entry and exact exploit details remain undisclosed. The preliminary report describes privilege escalation and compromised CI credentials.
- Exactly which variables were decrypted remains unknown; the workspace upper bound does not answer that. Broad provider revocations do not establish compromise of every reset credential.
- Railway says individual user accounts were not accessed; source-code access is still not ruled out.
- Misuse. Railway now gives a process for customers seeking refunds for fraudulent AI spend. That guidance does not publish a verified misuse count or attribute every suspicious charge to this intrusion; check your own provider logs.
Correction, October 24: Railway’s October 22 preliminary report supersedes the earlier unknown-scope account: at most 1.85% of workspaces (about 100,000) potentially had variables compromised. This is an upper bound, not a confirmed-victim total. It dates the attack window to October 20, 13:58 UTC through October 22, 03:32 UTC, and says existing workloads stayed online. All plan tiers accept builds again. The October 23 guides explain how to catch up missed deployments and replace revoked access; use the original login identity if projects appear missing.
Update, October 27: Railway’s October 26 update says services are fully restored for existing users, while new signups remain paused. Recovery does not replace the credential rotation and deployment-recovery steps above. For suspected fraudulent AI charges, contact the AI provider first, then submit timestamps, prompts and supporting proof at Railway Station for escalation. Railway cannot refund third-party AI spend, and its escalation offer is not a refund guarantee. No verified downstream-abuse total or broader victim count is established by this update.
Crime-scene timeline
Oct 20, 13:58 UTC
Preliminary report dates the first abnormal activity
This revises the initial notice's October 21 discovery account.
Oct 21, 07:24 UTC
Railway starts investigating a platform outage
Dashboard, API and CLI go down and builds are paused in all regions. The status page later folds the security notice into this same incident. The preliminary report now links build pauses to security triage.
Oct 21, 20:19 UTC
OAuth sessions invalidated
Railway cites impact on "adjacent cache systems"; users are signed out.
Oct 21, 22:10 UTC
Security notice published
Railway tells all users to roll every variable and registry credential. Deploys stay paused, Enterprise included.
Oct 21, 22:37 UTC
Railway starts rotating all storage bucket credentials
Oct 22, 02:19 UTC
Step-by-step guides published
Database rotation (Postgres, MySQL, MongoDB, Redis) and usage checks for AWS, GCP, GitHub, Stripe, OpenAI, Anthropic, Grok and OpenRouter.
Oct 22, 03:32 UTC
Builds return for Enterprise workspaces
Pro, Hobby, then Free and Trial follow in stages.
Oct 22, 2026
Railway publishes preliminary scope and containment findings
At most 1.85% of workspaces, about 100,000, potentially affected; attacker access ended by 03:32 UTC. The report says all plan tiers resumed builds by 22:49 UTC.
Oct 23, 2026
Login and deployment recovery guides published
Missed commits were not queued; revoked CLI and CI credentials must be replaced before retrying deployments.
Oct 26, 2026
Railway reports existing-user restoration and adds AI-spend guidance
New signups remain paused. Ask the AI provider about refunds first, then submit supporting evidence to Railway for escalation.
Who said what
We list each claim and who made it. Primary sources (the vendor, the researcher, the registry) are marked. Where reports disagree, we grade by the worst credible case.
- Railway blog: Security Disclosure, Wednesday October 21stPrimaryEncrypted variables may have been accessed and some decrypted; likely part of attacks on platforms aimed at AI inference providers; impact may be limited to a subset of users
- Railway status page (incident QH8L8B3E)PrimaryOutage from 07:24 UTC, OAuth sessions invalidated, all bucket credentials rotated, staged build restore
- Railway blog: Redeploy Buckets and Reconnect GitHub After the Credential ResetPrimaryRailway reset all bucket S3 keys and the GitHub tokens it held; stored GitHub registry tokens still work until the user revokes them
- Railway on XPrimaryOfficial account posts the urgent security notice
- Cybersecurity NewsEarly coverage had no affected-account count or access details; scope later revised by the vendor; no confirmed misuse
- StartupHub.aiEarly gaps in decryption mechanics and notified providers, partially superseded by the preliminary report
- Railway preliminary incident reportPrimaryOctober 22 preliminary scope, attack timeline, containment and restored build tiers; October 26 existing-user restoration and third-party AI-spend escalation guidance
- Railway deployment recovery guidePrimaryMissed commits were not queued; reconnect GitHub and replace revoked CLI / CI credentials
- Railway account recovery guidePrimaryLog in with the original account identity; an empty dashboard can indicate a different account