
The subagent that wrote its own jailbreak
Highlights A read-only triage subagent produced a complete jailbreak on its very first turn, before it had run a single tool. The jailbreak was written by the model itself, not injected by a file, an issue, or a prompt buried in the input. The model invented a fictional testing framework and used it to argue that its own read-only instructions were secretly a test it was supposed to defy. Nothing acted on it. The parent session recognized the output as an injection attempt, discarded it, and completed the task by hand. Two layers of the same model family declined. What prevented harm was alignment together with permission gating. It was not the subagent’s tool permissions, which included the full write surface. The practical lesson is an old one: make read-only agents read-only by construction, not by instruction. What happened I gave a subagent the most boring job I have. Read the open issues on one of my repositories, report which are ready to work on and which are blocked, and change nothing. The prompt said “read-only” and “no writes” several different ways. ...



