Trace Heist is an open-source, simulated educational lab about the risks of replayable encrypted reasoning traces. It never contacts a real model provider. The reported vulnerability is patched; all actors, scenarios, traces, keys, and responses in this project are invented stand-ins.
The lab demonstrates a boundary failure, not broken encryption: a genuine client-side Fernet block is replayable in the simulation because one key serves a fictional model family and the block contains no session, user, or model binding.
docker compose up --buildOpen http://127.0.0.1:8080. Stop with docker compose down; restarting creates a fresh browser session.
The supported verification path runs entirely inside a network-disabled container:
docker compose --profile verify run --rm verifyThe runtime serves only local static assets, binds only to loopback, and sends a Content Security Policy with connect-src 'none'.
The browser guides a learner through capture, structural inspection, weakest-sibling replay, and genuine local recovery, then presents a separate prompt-injection variant and a decoded-trace gallery. The UI distinguishes invented simulation from historical context throughout.
Read the learning guide for the Fernet layout, full walkthrough, patched-status context, data-minimization boundary, defense list, and fresh-state behavior.
No deployment, telemetry, package-publication, or image-publication configuration is included. Trace Heist is source-only and is designed to run locally through Docker Compose.
Trace Heist is available under the MIT License.