fix(proof): assert derived block matches claim after derivation#2567
fix(proof): assert derived block matches claim after derivation#2567
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
🟡 Heimdall Review Status
|
|
This is a port of succinctlabs/op-succinct#899 |
Closes GHSA-5jh4-3p33-85xc. advance_to_target silently downgrades the local target on EndOfSource, allowing an adversary to bind a valid output root to a future block number. Add a postcondition in WitnessExecutor::run() that rejects execution when the derived safe head block number differs from the claimed L2 block number. Includes a gated exploit-regression integration test (RUN_GHSA_EXPLOIT_REGRESSION=1) reproducing the attack shape.
eea1f70 to
06bd6e0
Compare
Co-authored-by: Cursor <cursoragent@cursor.com>
Approved review 4252328856 from jackchuma is now dismissed due to new commit. Re-request for approval.
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Review SummarySecurity fix for GHSA-5jh4-3p33-85xc — the What this PR does
AssessmentThe fix is correct. The error propagation chain is sound: The regression test is well-constructed: properly gated with No new issues found. The changes are minimal, focused, and correct. Note on previous bot comments: The 5 inline comments from an earlier review run are all based on a misreading of the diff — they claim the old inline check was preserved alongside the new function, creating dead code. In fact, the diff clearly shows the old check was removed (lines prefixed with |
|
The core issue was fixed by #2581. This main value add of this PR now is just the regression test |
Closes GHSA-5jh4-3p33-85xc. advance_to_target silently downgrades the local target on EndOfSource, allowing an adversary to bind a valid output root to a future block number. Add a postcondition in WitnessExecutor::run() that rejects execution when the derived safe head block number differs from the claimed L2 block number.
Includes a gated exploit-regression integration test (RUN_GHSA_EXPLOIT_REGRESSION=1) reproducing the attack shape.