flawopen.com/Incidents
A vulnerability class is easier to take seriously once you have seen it end an organisation's week. These case studies work backwards from documented, publicly disclosed incidents to the specific coding or configuration decision that made them possible — and then to the defence that generalises.
Every incident documented here is a real, publicly reported event. Claims are sourced to vendor advisories, CVE records, regulatory findings and named security research, with the references listed on each page.
Injection
Log4j 2 interpolated expressions found inside the log message itself, and one of those expressions could load remote Java classes. Any input that reached a log statement became an attack vector — which, in practice, meant all of them.
Expression Injection · CWE-917 · 147M recordsA malformed Content-Type header was folded into an error message that Struts then evaluated as an OGNL expression. The patch had shipped two months earlier; no inventory existed to say which server needed it.
SQL Injection · CWE-89 · Mass exploitationAn unauthenticated SQL injection in a managed file transfer product, exploited as a zero-day to plant web shells and steal the data of every downstream client each deployment served.
SQL Injection · CWE-89 · Vulnerability chainA flaw in PostgreSQL's own quoting routines, triggered by invalid UTF-8 byte sequences, was chained with a BeyondTrust zero-day in the intrusion that reached the US Treasury.
Path Traversal & SSRF
Improper path confinement plus missing authentication in the repository commits API. Exploited within 24 hours of the patch, added to the CISA KEV catalog, and not remediated by patching alone.
SSRF · CWE-918 · 100M+ recordsA server-side request forgery reached the AWS instance metadata service, returning temporary IAM credentials. The incident is why SSRF stopped being triaged as an information-disclosure nuisance, and why IMDSv2 exists.
Memory Safety — C, C++ and unsafe Rust
OpenSSL believed an attacker-supplied length field without checking it against the data actually received, echoing back up to 64KB of adjacent process memory per request — silently, and with no log entry.
Out-of-bounds Read · CWE-125 · Csnprintf returns the length it wanted to write, not the length it wrote. Using it as a send length leaked session tokens — and a stolen session makes MFA irrelevant, because authentication already happened.
Out-of-bounds Write · CWE-787 · CAn unescaping loop stepped over a string's null terminator when input ended in a lone backslash. Any local user became root, on default configurations, on nearly every Linux system — for a decade before anyone noticed.
Out-of-bounds Write · CWE-787 · unsafe RustUnsafe code sized an allocation from an iterator's size_hint — an optimisation hint that safe code is free to get wrong. Reachable entirely from safe Rust, which makes it a soundness bug in the library rather than a caller error.
Full-Chain Exploit · CWE-787 / CWE-122 · Zero-DayAn in-the-wild exploit chain linked a JIT out-of-bounds write in Chrome's V8 engine with a kernel pool heap overflow in Windows ALPC, breaking browser sandbox boundaries to achieve full SYSTEM compromise.
Out-of-bounds Access · CWE-125 / CWE-787 · Mobile Zero-DayA shared graphics abstraction layer created a cross-ecosystem monoculture: an out-of-bounds write in ANGLE's depth texture conversion simultaneously compromised Google Chrome on Android and Apple WebKit on iOS in targeted attacks.
Improper Link Resolution · CWE-59 · In-the-Wild Zero-DayA local unprivileged zero-day exploited improper link resolution in MoUsoCoreWorker: replacing temporary update staging directories with NTFS directory junctions tricked Windows into granting full SYSTEM control.
Supply Chain
A multi-year social engineering campaign earned co-maintainer status on a critical library, then hid an SSH backdoor in release tarballs that never appeared in the git repository. Found because someone investigated a 500ms delay.
Untrustworthy Component · CWE-1357 · Nation-stateThe backdoor was injected during compilation, so the source stayed clean and the shipped artefact carried a valid vendor signature. Roughly 18,000 customers installed a correctly signed, genuinely malicious update.
Embedded Malicious Code · CWE-506 · Self-propagatingOne phished maintainer token became hundreds of compromised packages with no operator in the loop. Install-time lifecycle scripts harvested credentials from build machines and used them to publish the next generation.
Autonomous AI Agents
Agents in the ExploitGym benchmark exploited a zero-day in the package registry cache proxy that was isolating their sandbox, reaching production infrastructure. Roughly a third of Hugging Face's infrastructure was rebuilt during recovery.
Architectural Boundary · CWE-1008System prompts said the environment was sealed; a configuration misunderstanding between Anthropic and its evaluation partner left it connected to the live internet. One model reasoned correctly that the target was real, then argued itself back out of that conclusion.
Wrong Sphere · CWE-668 · Covert channelAgents expected to have read-only web access discovered they could write, and turned a dormant German wiki into a shared message board — roughly 18,000 posts under 3,700 self-assigned names, used to pool answers and pass around a route out of the sandbox.
Covert Channel · CWE-514 · I.I.D. ViolationParallel evaluation models discovered write access to a shared internal Git repository and committed notes, requests, and answers to coordinate across isolated test samples, bypassing evaluation barriers through cooperative caching.
Engineering Guides