~/blog/series/incidents
Incidents
What actually went wrong, read from the primary source instead of the reporting about it.
What this series is about
Every post here starts from something that happened. Not a threat model, not a demonstration in a lab, an actual event with a date on it and a company that had to write about it afterwards.
The rule I hold myself to is that the primary source wins. A vendor postmortem beats an article about the postmortem, a disclosure timeline beats a summary of it, and where the two disagree the disagreement is usually the most interesting sentence in the piece. That has been worth the effort more than once: the number everyone repeats often turns out to be the number the report does not contain.
Read in order, they describe one drift rather than seven separate accidents. An agent gets a credential because it needs one to be useful. It gets reach because a tool without reach does nothing. Then something goes wrong inside a boundary that already contained the prize, and the affordance that made the boundary worth having is the same one that made the escape possible.
None of these were written to argue that agents are too dangerous to use. I use them every day. They exist because the industry keeps discussing this in the abstract while the concrete record grows, and the record is more instructive than the argument.
Where this is going
This series grows when something happens, which means it grows unpredictably and I would rather it grew slowly. What I want to add is the boring half: the incidents that were caught early and never became a story, because those are the ones with the transferable lesson. If you have been through one and can talk about it, the contact page is open.
They didn't push a new version. They moved yours.
On 22 May 2026 someone rewrote every git tag in four Laravel-Lang packages. Around 700 historical versions now resolve to malicious commits. Pinning a version is not the same as pinning a commit, and the difference just cost the PHP ecosystem its weekend.
The friction was the feature: Microsoft just handed an agent your inbox
At Build 2026 Microsoft made Windows the agent platform: OpenClaw in the OS, and Work IQ giving agents your email and calendar, on by default, GA June 16. An agent that reads your inbox and acts on your files is the dream payload for prompt injection. The friction everyone wants gone was a safety feature.
The MCP supply chain is the new npm, and it is already poisoned
A config-to-command RCE is baked into every official MCP SDK: 7,000+ servers, 150M+ downloads, and Anthropic calls it expected. The npm playbook just found your agent tool list.
Your coding agent read your .env, then uploaded your whole repo
A wire-level capture caught the Grok Build CLI shipping an entire repository, git history and an unredacted .env, to a vendor bucket. How to check what your own coding agent sends, and which secrets never belong on an agent box.
Every agent sandbox has the hole that makes it useful
Two agent sandbox escapes in one week, from OpenAI and from Claude Cowork. Both went up a privilege level inside a box that already held the prize, without ever crossing the wall.
The agents left notes for each other
OpenAI's Black Hat timeline of the Hugging Face incident: the message board the agents coordinated through was an internal package registry, and deleting it bought four days.