Incident database

How real software and AI systems failed

65 documented incidents from postmortems, regulatory filings and court records, plus 1,500 security advisories ingested every two hours. Each links to its public source and to the safeguard that addresses it.

65 records · Documented incident: A real incident summarised from a public source (postmortem, regulatory filing, court record or advisory).

Explore these 65 records in charts

Most represented patterns

Top six in the filtered results. A record can have several patterns.

  • Privileged action without an enforceable approval gate23
  • Weak or phishable authentication on a privileged path20
  • Global change without a staged rollout10
  • Insufficient segmentation lets a foothold spread9
  • Destructive operation without verified recovery9
  • Audit trail missing actor, target or decision9

Records by year

Up to eight recent years, plus undated records. Dates may refer to an incident, disclosure or publication.

  • 202519
  • 20247
  • 20238
  • 20226
  • 20216
  • 20204
  • 20193
  • 20182
  • Undated1
Documented incidentIncident 2025-08-26AI agent

GitHub Actions injection leaks Nx's npm token; malicious packages use local AI coding tools to hunt for secrets (2025)

A pull-request title validation workflow used pullrequesttarget, which runs with repository secrets, and echoed the unsanitized PR title, creating an injection point; the workflow's token also had read/write permissions.

Safeguard: Never run untrusted pull-request input with secrets

Privileged action without an enforceable approval gatenx.dev
Documented incidentDisclosed 2023-06-07

SQL injection in MOVEit Transfer exploited by the CL0P ransomware gang (2023)

CISA and the FBI report that the CL0P ransomware gang exploited a SQL injection vulnerability (CVE-2023-34362) in Progress MOVEit Transfer beginning May 27, 2023, installing a web shell called LEMURLOOT.

Safeguard: Patch internet-facing transfer tools immediately

Known vulnerability left unremediatedcisa.gov
Documented incidentDisclosed 2022-09-16

MFA fatigue against a contractor gives an attacker access to Uber's internal tools (2022)

An attacker likely bought a contractor's corporate password on the dark web after malware infected the contractor's personal device, then repeatedly sent two-factor approval requests until the contractor accepted one.

Safeguard: Use phishing- and fatigue-resistant MFA

Weak or phishable authentication on a privileged pathuber.com
Documented incidentIncident 2022-08-04

SMS phishing of employees leads to compromise of Twilio customer accounts (2022)

Attackers used SMS phishing to fool some Twilio employees into giving up credentials, then used them to access internal systems and information about a limited number of customer accounts.

Safeguard: Use phishing-resistant MFA for employees

Weak or phishable authentication on a privileged pathtwilio.com
Documented incidentDisclosed 2021-12-10

Log4Shell: remote code execution through JNDI lookups in Apache Log4j (2021)

CVE-2021-44228 (Log4Shell) affects Apache Log4j 2.0-beta9 through 2.14.1 and lets an unauthenticated remote actor execute arbitrary code through JNDI lookups.

Safeguard: Maintain a software bill of materials and patch fast

Known vulnerability left unremediatedcisa.gov
Documented incidentIncident 2017-02-28

Mistyped input to a capacity-removal command takes down S3 in us-east-1 (AWS, 2017)

An engineer ran a command meant to remove a small number of servers from an S3 subsystem, but one input was entered incorrectly and more capacity was removed than intended.

Safeguard: Enforce minimum-capacity limits inside the tool

Privileged action without an enforceable approval gateaws.amazon.com
Documented incidentPublished 2017-02-22

Design reference: idempotency keys make retried payment API calls safe (Stripe)

Stripe explains that a client which cannot tell whether a request succeeded (for example after a network failure) needs to retry safely, and that without protection a retried charge could double-charge a customer.

Safeguard: Attach idempotency keys to state-changing requests

Duplicate action after an ambiguous resultstripe.com