The canary loop

Executability tells real code from hallucinated code, but not whether an exploit actually works. Fixtures close that gap. The verifier stands up a disposable vulnerable target, seeds a fresh random canary into it, runs the exploit against it, and calls the result FUNCTIONAL only if the exploit’s output contains that canary. The target runs on an internal network with no path to the internet, and the canary is a per-run secret the model cannot know. So a landed exploit is proof, not a guess.

Built-in targets

Each target exposes the canary only through its vulnerability, so a benign request returns PARTIAL and only the real exploit returns FUNCTIONAL.

Using a fixture

The target is reachable inside the sandbox at the host target. The fixture images live under fixtures/ in the repo and build with a plain docker build.