ETB-09. Forged execution artifact

The evaluator trusts a self-reported execution result. A runner trusts a self-reported PASSED, an always-equal return, or spoofed stdout.

Fix

Verify against frozen ground truth the policy cannot influence.

In the study

7 instances

Of

76

01How it happens

What the scorer reads that the policy can write.

The runner believes what the code under test reports about its own execution. A PASSED line in the test output, a return value compared with ==, an anti-cheat canary inside the environment: each is produced by, or reachable from, the code being evaluated.

So the code under test can print PASSED, or return an object whose __eq__ always returns True, and score as if it had solved the task. Public cases include code-execution benchmarks that a dunder override passes without solving anything, and anti-cheat checks the policy can subvert.

SWE-bench fixed one in August 2026: its grader counted PASSED lines that the evaluated patch could print itself. It now checks the test command's exit status.

The rule all ten mechanisms break: a score must be a function only of state the evaluated system cannot reach. The full taxonomy

02Example

The pattern, and the fix.

Illustrative Python, reduced to the line that matters. The public reports below link the real code.

Trusts the evaluated system
out = subprocess.run(["pytest", test_file], capture_output=True, text=True).stdout
passed = "PASSED" in out   # the code under test can print this
Fixed
proc = subprocess.run(["pytest", test_file], capture_output=True, text=True)
passed = proc.returncode == 0   # the runner's own evidence, not lines the code wrote
03Questions

Can a patch fake passing tests in SWE-bench?

Before the fix, a patch could print PASSED lines that the grader counted as passing tests. The accepted fix checks the test command's exit status instead of trusting lines in its output.

How do I stop an __eq__ override from passing a code benchmark?

Do not compare objects the candidate constructed. Serialize the result to plain data, compare it with the expected value in the grader's own process, and check the type as well as equality.

04Fixed upstream

Fixed upstream, dated by the merge.

2026-08-14

SWE-bench. The grader counted PASSED lines that the evaluated patch could print itself.

PR #620 · Write-up

05Public reports

Every public report in this class.

Filed upstream with a proposed patch between March and July 2026, from the study's public evidence table. Titles are the reports' own.

2026-06-18

BerriAI/litellm #30732

Tool permission/policy guardrails not applied on /v1/responses & /v1/messages routes; blocklist bypassed by name variants

2026-06-18

NVIDIA/garak #1868

TAP/PAIR LLM-judge prompt interpolates target response unescaped: model output can forge Rating rail and flip jailbreak to safe

2026-07-13

SWE-bench/SWE-bench #620landed

Detect stdout spoofing via test exit code (model can forge PASSED lines)

2026-07-14

evalplus/evalplus #306

Detect return-value deception via dunder override (same exploit class as HumanEval)

2026-07-14

open-compass/opencompass #2535

Return-value deception via __eq__ override: model can pass code-exec benchmarks without solving problems

2026-07-14

openai/human-eval #67

Detect return-value deception via dunder override (model can score 100% without solving problems)

2026-07-22

Mercor-io/terminal-bench-3 #8

Close two anti-cheat bypasses in canary and dockerfile checks

Cite as: Kearney, John. The Evaluator Trust Boundary: A defect class in AI evaluation infrastructure, its prevalence across 36 organizations, and its removal by training. Preprint, Authensor, Inc., 2026. doi:10.5281/zenodo.21633620. Check your own judge for ETB-01 with etb-scan.