The 14 ways software keeps failing
Most incidents are not new. They repeat a small number of patterns: a retry that double-charges, an agent that obeys instructions hidden in an email, a config change that reaches every server at once. Each pattern below shows how it unfolds, and links to the real incidents behind it and the safeguards that prevent it.
Explore documented incident coverage by pattern
Patterns 1–7
An incident can have more than one pattern.
Patterns 8–14
An incident can have more than one pattern.
Duplicate action after an ambiguous result
A request times out, the caller assumes it failed and retries, and the money moves (or the order ships) twice.
CWE-8371 documented incidentPrivileged action without an enforceable approval gate
Limits and approvals live in a prompt, a UI checkbox or a convention instead of code the automation cannot bypass.
- GitHub Actions injection leaks Nx's npm token; malicious packages use local AI coding tools to hunt for secrets (2025)
- Prompt injection makes GitHub Copilot turn off its own confirmations and run commands (CVE-2025-53773)
- Stolen OAuth tokens from the Salesloft Drift integration are used to export data from customers' Salesforce instances (2025)
ASI03LLM03AC-323 documented incidentsCross-tenant access through a caller-controlled identifier
The server trusts an account, tenant or object ID sent by the client, so changing a number reveals someone else's data.
- Non-secret app ID lets anyone register for private apps built on the Base44 AI app builder (2025)
- Default password and an IDOR in McDonald's AI hiring chatbot platform expose data on 64 million applicants (2025)
- Privilege escalation and a certificate-validation flaw allow cross-account database access (Azure PostgreSQL "ExtraReplica", 2022)
AC-3AC-4Goal 34 documented incidentsIndirect prompt injection changes agent behavior
An email, web page, issue or ticket that the AI reads contains instructions, and the agent follows them with its tools.
- Prompt injection makes GitHub Copilot turn off its own confirmations and run commands (CVE-2025-53773)
- Prompt injection in a README plus weak allow-list matching lets Gemini CLI silently run attacker commands (2025)
- Hidden instructions in a support ticket make an MCP-connected assistant expose private SQL tables (Supabase MCP, 2025)
ASI01ASI02ASI065 documented incidentsDestructive operation without verified recovery
A delete, cleanup or teardown runs against the wrong target, and the backups that should save the day turn out not to work.
- AI coding agent deletes a live production database during a code freeze (Replit, 2025)
- Ransomware shuts down CDK Global's dealer-management platform for about 15,000 dealerships (2024)
- Blank provisioning parameter leads to automatic deletion of a customer's private cloud (UniSuper / Google Cloud, 2024)
CP-9CP-10RV.3.49 documented incidentsRetry amplification and runaway resource consumption
Retries, loops or an expensive input multiply load until a partial failure becomes a full outage or a runaway bill.
- Latent race condition in DNS automation leaves DynamoDB's regional endpoint with an empty record (AWS, 2025)
- Third-party storage outage behind Workers KV takes down many Cloudflare services (2025)
- New Consul streaming feature under heavy load and a BoltDB issue cause a 73-hour outage (Roblox, 2021)
ASI08LLM06SC-58 documented incidentsPartial success leaves systems out of sync
A multi-step workflow half-completes, or events arrive out of order, and two systems now disagree about what happened.
- Confusing loan-system interface leads Citibank to wire nearly $900 million in principal to Revlon lenders (2020)
- 43-second network partition triggers database failover and unreplicated writes (GitHub, 2018)
SC-242 documented incidentsAutomation acts on stale state or authorization
A background job or automation acts on a plan, permission or record that changed after it was read.
- Database permissions change doubles a bot-management feature file and crashes edge proxies (Cloudflare, 2025)
- Latent race condition in DNS automation leaves DynamoDB's regional endpoint with an empty record (AWS, 2025)
- Dormant configuration error in legacy routing systems withdraws Cloudflare's 1.1.1.1 DNS resolver worldwide (2025)
AC-3CWE-3677 documented incidentsAudit trail missing actor, target or decision
After something goes wrong nobody can tell who or what took the action, on which object, or why.
- Call and text records of nearly all AT&T wireless customers taken from a third-party cloud workspace (2024)
- Stolen credential opens Okta's support system, where uploaded HAR files held customer session tokens (2023)
- GitHub's RSA SSH host private key briefly exposed in a public repository (2023)
AU-3MANAGE 4.3Goal 79 documented incidentsAI action exceeds its intended scope
An AI agent or assistant takes an action, or makes a promise, that nobody meant it to be able to make.
- GitHub Actions injection leaks Nx's npm token; malicious packages use local AI coding tools to hunt for secrets (2025)
- Prompt injection makes GitHub Copilot turn off its own confirmations and run commands (CVE-2025-53773)
- Prompt injection in a README plus weak allow-list matching lets Gemini CLI silently run attacker commands (2025)
ASI02ASI03ASI108 documented incidentsGlobal change without a staged rollout
A configuration, content or code change reaches every server at once, so one bad value takes everything down together.
- Database permissions change doubles a bot-management feature file and crashes edge proxies (Cloudflare, 2025)
- Dormant configuration error in legacy routing systems withdraws Cloudflare's 1.1.1.1 DNS resolver worldwide (2025)
- Policy change with blank fields crashes Google Cloud's Service Control in a global loop (2025)
ASI08CM-3CM-410 documented incidentsWeak or phishable authentication on a privileged path
A password, an SMS code or a help-desk reset is all that stands between an attacker and admin access.
- Self-replicating "Shai-Hulud" worm compromises more than 500 npm packages by stealing developer tokens (2025)
- GitHub Actions injection leaks Nx's npm token; malicious packages use local AI coding tools to hunt for secrets (2025)
- Stolen OAuth tokens from the Salesloft Drift integration are used to export data from customers' Salesforce instances (2025)
IA-2Goal 1Goal 220 documented incidentsKnown vulnerability left unremediated
A patch or fix exists, but the vulnerable component keeps running because nobody knew it was there or owned the fix.
- "ToolShell" vulnerabilities in on-premises SharePoint are exploited to steal server keys (2025)
- SQL injection in MOVEit Transfer exploited by the CL0P ransomware gang (2023)
- Log4Shell: remote code execution through JNDI lookups in Apache Log4j (2021)
RA-5SI-2RV.1.18 documented incidentsInsufficient segmentation lets a foothold spread
One compromised account, vendor or network segment reaches management planes, backups and everything else.
- Self-replicating "Shai-Hulud" worm compromises more than 500 npm packages by stealing developer tokens (2025)
- Ransomware shuts down CDK Global's dealer-management platform for about 15,000 dealerships (2024)
- Cyberattack disrupts Johnson Controls' internal IT infrastructure (2023)
SC-7CWE-6539 documented incidents