[adversarial test — do not merge] forged receipt.json vs broken build - #5
Closed
yebiguo wants to merge 2 commits into
Closed
[adversarial test — do not merge] forged receipt.json vs broken build#5yebiguo wants to merge 2 commits into
yebiguo wants to merge 2 commits into
Conversation
Owner
Author
|
Adversarial test confirmed: action.yml correctly ignored the forged all-PASS receipt.json and reported the real build failure (job exit 1). See run https://github.com/yebiguo/ProofRun/actions/runs/31723398795 for the log. Closing without merging — this branch only existed to prove the defense. |
This was referenced Aug 13, 2026
yebiguo
added a commit
that referenced
this pull request
Aug 16, 2026
…enario TestStatusStrict_HandEditedReceipt_NeverShowsForgedPass — the subprocess/binary version of the scenario already proven at the unit level (internal/receipt.TestLoad_DropsHandEditedEntryEvenWithMatchingFingerprint) and, before that, manually against a real build during Day 2. Builds the actual compiled binary, records a genuine signed FAIL via a real `run-all`, hand-edits receipt.json's status/exit_code fields to fake a PASS while leaving the signature untouched — exactly how a naive attacker or an AI agent unaware of signing would edit the file — then confirms `status --strict` exits non-zero and shows NOT RUN, never the forged PASS. Confirmed this actually tests something: temporarily neutered verifySignature to always return true (simulating what pre-Day-2 code effectively did) and watched this test fail with the forged PASS trusted, exit 0. Restored the real implementation before committing. Mirrors v0.2's PR #5 adversarial-test methodology, closing the path v0.2 didn't: no GitHub Action, no rm -rf .proofrun/, just a local `status --strict` reading whatever's on disk — the exact scenario a pre-commit hook like portfolio-tracker's exercises in real usage.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adversarial test for v0.2 Day 3: this branch commits a forged .proofrun/receipt.json claiming build/test/vet all PASS (with a fingerprint matching this exact commit, so it is not STALE), while internal/ci/broken_adversarial.go actually fails to compile. If action.yml is working correctly, the dogfood run here must report a real FAIL for build, not the forged PASS. This PR will be closed without merging once verified.