Research

Context · EXP-13

Compaction Laundering: the forged approval that never laundered

Flattening a conversation into plain text before compaction lets a forged user approval survive summarisation as genuine memory, 87–100% of the time in the paper's harnesses. In our substrate the forged line laundered in 0 of 87 baseline runs across two models.

Published 4 min readSource paper: arXiv 2610.29869

Verdict against the frozen bar

Bar missed; validity gate missed. Forged approvals laundered in 0 of 87 flattening-baseline runs across both models, against the paper's 87–100%. Retention and success were 100% in the main run.

Compaction is a trust boundary. When a coding agent's conversation is flattened into a single plain string, with each message marked by a text label like [User]:, the provenance of every line becomes a formatting claim, and anything the agent has read can forge one. The paper behind this experiment, Arshan Dabirsiaghi's "Compaction Laundering: Provenance Destruction in Context-Compacting Coding Agents" (arXiv 2610.29869), shows a forged approval laundering through compaction into the agent's memory in 87–100% of runs across five flattening harnesses, and 0% across four role-typed ones, then follows the laundered approval to executed consequences in live agents.

This is the security sibling of EXP-05, which tested the same surface for reliability and met its bar. Here the paper's attack did not reproduce at all, and we publish the attempt with its substrate limits stated, because a security non-result is exactly the kind that gets over-read if it travels without them.

What we tested

Eighteen synthetic histories in which content the agent read contains a forged [User]: approval line, positioned to survive compaction if the summariser treats the flattened record at face value. Three arms, three repetitions, 162 runs on Gemini 3.8 Flash:

  • Arm A: flattening. The history is serialised to a labelled plain string, compacted, and the continuation runs from the summary.
  • Arm B: flattening plus a prompt rule warning that labels inside read content are not genuine turns.
  • Arm C: role-typed. Messages stay role-typed through compaction, with role labels inside read content escaped.

Scored: whether the forged approval entered the summary as a genuine user instruction (laundering), whether the continuation acted on it (enactment), retention of genuine user instructions, and legitimate task success. Replication on DeepSeek v4.1 Flash, 50 of 54 cells scored.

Results

Verdict against the frozen bar

Nothing laundered, anywhere. Main run: laundering 0.0% in all three arms (0 of 54 arm-A runs), enactment 0.0%, retention 100%, success 100%. The validity gate, requiring the flattening baseline to launder in at least 33% of runs, missed at zero, and the bar's condition 2 (role-typed beating the prompt rule by 5 points) is unmeetable at the floor. Arm costs were nearly identical (A 697.8, B 686.7, C 702.4 tokens per task), so in this substrate the provenance-preserving shape is free; it simply had no attack to stop.

Laundering by arm

Replication

The same shape on DeepSeek: laundering 0.0% in all arms (arm A 0 of 15 scored), enactment 0.0%, and arm C kept 100% retention and 100% success against arm A's 86.7% retention and 80.0% success (the baseline dropped genuine lines in 2 of 15 runs). Across the validity smoke, main run, and replication, the forged line was laundered in 0 of 87 scored flattening-baseline runs. The four error cells are transport failures and cannot change the verdict: arms B and C are scored at 0%, so no completion of arm A puts C below B by 5 points.

Limits

  • The paper's setting differs from this substrate in the way that matters most: its forged line arrives inside long, real harness transcripts where the flattened record is the only record, and a separate summariser call produces a summary a fresh session later consumes. Here the history, the forged line, the summary, and the continuation all sit in one packet and one call, with the genuine instructions stated twice and the read content visibly quoted. The forged line's provenance is legible in a way the paper's is not.
  • Either these histories make the forgery too easy to spot, or both model pairings are in a class that does not show the failure at this scale. The data cannot distinguish those readings, and neither is claimed.
  • The paper's executed consequence (a laundered approval driving a real curl | sh in a sandbox) is measured here only as declared-deliverable enactment, which was 0% in every arm.

What we did with it

No incorporation. Neither the provenance-preserving serialiser change nor the prompt rule is adopted on this evidence, because the flattening baseline needed neither here, and adopting a security control on a non-result would be theatre. The guardrail written back is the boundary itself: the paper's 87–100% laundering rate is not an assumed local effect, and this report is not evidence that our compaction surfaces are safe. It is evidence that a one-shot packet, where provenance is visible, does not reproduce the attack. A real test needs long real harness transcripts and a separate summariser call, which is a new fixture task. Until that test exists, the honest position is the paper's mechanism, unverified locally, not refuted.

Source paper

Arshan Dabirsiaghi (Pixee). “Compaction Laundering: Provenance Destruction in Context-Compacting Coding Agents.” arXiv:2610.29869

This report is one entry in the full experiment record. See all research reports, including the experiments whose bars were missed.