On October 21, 2026, the cloud platform Railway told customers that an unauthorized party may have accessed the systems that store their environment variables, in some cases in decrypted form. Railway paused all deployments, worked with GitHub, GitLab, Anthropic, OpenAI, OpenRouter, Stripe and others to revoke keys it believed were exposed, and told every customer to rotate their secrets. A later update put the exposure at at most 1.85% of all workspaces and said the attacker was likely looking for AI and platform API keys.
This article is not about Railway's security. Every platform can be breached, and Railway's disclosure was fast and specific. It is about what happened next, inside thousands of engineering teams, and why some were far better placed than others to take back control of their keys.
The Case Study: What Happened at Railway
Railway says it detected a "sustained and targeted campaign" on October 20 (UTC). By the next morning it had confirmed that keys had been accessed and began coordinating revocations with upstream providers. The company described the attacker as well resourced. Its preliminary report points to a potential privilege escalation in its build infrastructure, with full details still to come.
For customers, the instruction was simple to state and hard to carry out: rotate every key stored on Railway (its preliminary report recommends this for all customers who signed up before October 21), remove public network access to databases, review GitHub and container-registry audit logs, and assume nothing.
Environment variables are where modern software keeps its authority. A typical production service holds:
- A database URL — which grants read access to every customer record
- AI provider keys — billable, resellable, and the stated target of this attack
- Payment gateway secrets — which can issue refunds or forge webhooks
- A session signing key — which can mint a valid login for any user, including administrators
- Source-control and email tokens — which can push code or send mail as you
Each of those is a trust relationship with another system. Together they are the most concentrated store of power in the whole architecture. And on most architecture diagrams, they do not appear at all.
The Part Nobody Drew on the Block Diagram
Ask a team to draw their system and you get boxes for the frontend, the API, the database, maybe a queue. You rarely get a box labelled "the twenty secrets that let this service act as us." It is not a component in anyone's mind, so it never enters a risk analysis.
That is why a day like October 21 is so uneven. A team that treats its secrets as a component knows three things before it starts: what secrets exist, what each one can do, and how to replace each one without an outage. A team that doesn't spends the first day building that inventory under pressure, and often discovers along the way that one key also lives in a database table, another in a developer laptop's shell profile, and a third in a CI system nobody has touched in a year.
How FMEA Could Have Prevented This
No customer could have prevented the intrusion at the platform. FMEA does not pretend otherwise. What it does is separate the three things you can influence:
- Occurrence — largely outside your control when the failure is at a supplier
- Severity — entirely within your control. A narrowly scoped key that can only read one repository is a nuisance when stolen; an all-repositories token with write access is a crisis
- Detection — also within your control. Per-key usage dashboards, audit logs and spend alerts decide whether you learn about misuse from your own monitoring or from your invoice
This is the same lesson we drew from the CrowdStrike outage: when the failure lives upstream, the engineering work is in containment and recovery, and those are design decisions you make months earlier.
Applying the AIAG-VDA 7-Step FMEA Process
The AIAG-VDA method works for a deployment platform as well as it does for a brake system.
- Step 1: Planning and Preparation – Scope the analysis to "production configuration and credentials." Include the people who can actually rotate things: the platform owner, the payments owner, whoever administers the AI provider accounts.
- Step 2: Structure Analysis – Make the secrets store a structure element. Under it, list every secret as a child element, with where it is stored, who issued it, and which service consumes it.
- Step 3: Function Analysis – Write the function of each secret in plain terms: "authorizes the API to read and write the customer database," "authorizes refunds." The function statement is the blast radius.
- Step 4: Failure Analysis – For each element, ask what happens if it is copied, revoked without warning, or both. Revocation matters: in this incident, providers revoked potentially compromised keys proactively, and when that happens a feature can go down before anyone has read the email.
- Step 5: Risk Analysis – Rate severity from the function statement, occurrence from your supplier's exposure, and detection from the monitoring you actually have today, not the monitoring you intend to add.
- Step 6: Optimization – Reduce scope, add per-key monitoring, write and rehearse a rotation runbook, and remove secrets that no longer need to exist.
- Step 7: Results Documentation – Record what was rotated, when, and what the log review found. That record is what an auditor or an enterprise customer will ask for.
Key Failure Modes to Document
Hosting Platform Secrets Store Exposed
- Function: Hold production credentials and inject them into running services
- Failure Mode: Contents read by an unauthorized party at the platform level
- Effects: Every downstream system the credentials authorize is exposed at once: database, payments, AI providers, source control, email
- Causes: Compromise of the platform provider; credentials stored long-term with broad scope
- Current Controls: Platform encryption at rest (which this incident showed is not a sufficient control on its own)
- Recommended Actions: Maintain a secrets inventory as a living artefact; scope every key to the minimum; set provider-side spend and usage alerts per key; rehearse full rotation at least once a year
Credentials Your Customers Stored With You
- Function: Hold integration tokens that customers saved in your product (their AI keys, issue-tracker tokens, chat-app secrets)
- Failure Mode: Readable by anyone who obtains your database password
- Effects: A breach at your hosting provider becomes a breach of your customers' other systems. Severity jumps from "our incident" to "their incident"
- Causes: Third-party tokens stored in plain text alongside ordinary data
- Current Controls: Database access restricted by password and network rules
- Recommended Actions: Encrypt stored third-party credentials with a key held separately from the database credential; define in advance when you notify customers of a possible exposure, not only a confirmed one
Rotation Causes Its Own Outage
- Function: Replace a compromised secret without interrupting service
- Failure Mode: New secret deployed incorrectly, or old secret revoked before every consumer has moved
- Effects: Self-inflicted outage during an already stressful incident; in some cases, data encrypted with the old key becomes unreadable
- Causes: No runbook; secrets duplicated in places nobody remembers; encryption keys rotated without re-encrypting stored data
- Current Controls: Manual knowledge held by one or two engineers
- Recommended Actions: Document the rotation order and the verification check for each secret; trace each step to a test that proves the service still works
From Failure Modes to Requirements
An FMEA only matters if its actions become commitments. Each recommended action above becomes a requirement with an owner and a verification method, for example:
- "The system shall maintain an inventory of every production secret, its scope, its consumers and its issuer." Verified by quarterly review.
- "Third-party credentials stored on behalf of customers shall be encrypted with a key that is not derivable from the database credential." Verified by inspection and test.
- "The team shall be able to rotate all production secrets within four hours." Verified by an annual rotation drill.
When the next platform incident arrives, those requirements and their test results are your evidence that the risk was understood and handled, rather than discovered on the day.
Conclusion
The Railway incident will not be the last time a trusted platform loses control of customer secrets. The teams best placed to cope are not the luckiest ones. They are the ones that treat their credentials as a component, analyse what each one could do in the wrong hands, and write down how to take that power back.
NirmIQ is built for exactly this kind of work: structure analysis that includes the parts nobody drew, AIAG-VDA failure analysis with Action Priority, and traceability from every failure mode to the requirement that addresses it and the test that proves it. If your last risk review did not include your secrets store, try it with your own system.
Further reading:
- Why IT Infrastructure Needs FMEA: Lessons from the CrowdStrike Outage
- RPN vs Action Priority: Why the AIAG-VDA FMEA Handbook Changed How We Prioritize Risk
Sources: Railway's security disclosure of October 21, 2026 and its preliminary incident report (blog.railway.com); The Hacker News ("Railway Says Intruder May Have Accessed Customer Secrets, Urges Credential Rotation", October 2026). Figures are as reported at the time of writing and may change as investigations continue.
Madhusudhan Chellappa
CTO & Founder at Gannet Engineering. Two decades of experience in systems engineering across automotive, aerospace, and safety-critical domains.
Follow on LinkedInRelated Articles
IT & InfrastructureWhy IT Infrastructure Needs FMEA: Lessons from the CrowdStrike Outage
Software EngineeringOne Upgrade Away: What the LiteLLM Compromise Teaches About Common-Cause Failure
Industry Insights