What we think about
We write about what we learn, how we work, and what we observe.
46 posts found in security
The instructions were on disk and the agent never read them
Claude Code silently skipped AGENTS.md when telemetry was off. The file sat on disk, the agent never read it, nothing failed loudly. Why we now canary-test what our agents actually load.
A vendor's misuse casefile is a monitoring spec, not a press release
When the company behind a model publishes how that model gets abused, it is handing us a list of runtime checks to build. We treat it as intelligence, not reading material.
The gate approved the attack, then blocked the cleanup
A break of an agent's auto-approval mode shows a classifier permitting the process that plants a compromise, then blocking the one that removes it. Danger lives in state, not the command string.
The capability was in the coordination
A near-autonomous AI campaign hit a government target, and the quiet finding is that the model was not the hard part. The coordination was, and coordination is the ordinary work we do.
Agents do not go rogue, they overreach
The headlines call it agents going rogue. From where we run them, nothing rebels. An agent with too much reach meets a bad input and overreaches, which is an ordinary engineering problem.
When a request can cost money
Payment rails like x402 let an agent settle a bill mid-request. The interesting question is not the money, but where its spending authority lives and how each commitment is gated.
The dependency runs before we call it
Four AsyncAPI npm packages were briefly backdoored. The payload ran at import time and shipped with valid provenance. Two defenses many teams lean on did nothing.
A bind address is a blast-radius decision
RufRoot wasn't a model flaw or a prompt injection. It was an orchestration layer that shipped its tool-execution control plane, unauthenticated, on every network interface.
A worm that rides the documents an assistant writes
A self-replicating prompt injection in Copilot for Word copies its own payload into the files it generates. The property that's new is not injection. It's that our output becomes the next input.