Skip to content

v4.3.1

Choose a tag to compare

@fakedev9999 fakedev9999 released this 06 May 03:59
5b6119a

Patch release that closes GHSA-5jh4-3p33-85xc, a soundness gap in WitnessExecutor::run where a non-interop EndOfSource could let an adversarial witness commit a (claimed_l2_output_root, claimed_l2_block_number) pair referring to different L2 blocks. The fix binds the committed l2BlockNumber to the actual derived safe-head number. The release also bundles fault-proof, host, and CI fixes merged since v4.3.0.

Breaking Changes

  • Verification keys have changed — range and aggregation ELFs are rebuilt with the patched WitnessExecutor::run. All deployments must upgrade contracts with the new keys.

Migration Guide (v4.3.0 → v4.3.1)

Since the verification keys have changed, you must upgrade your contracts with the new keys. Follow the upgrade guide for your deployment type:

Verification Key Hashes

Program Verification Key Hash
Ethereum DA Range 0x0e459f7b7b91a69544714f82370e93cb0ffa8dfe1d750a6b7095c3cc03d22406
Celestia DA Range 0x12ba926d0b4a23822455687914e8c3420803934d3d140136583f4c6e1791dc70
EigenDA Range 0x53f3096213735de635e1d4687e625be72277df1c5f3b6ec96fccf9625838c598
Aggregation 0x0045e1767d8214ebb172f1e5e0267aab63192b5a10b437211ea991f852b14587

Summary of Changes

Security

  • WitnessExecutor::run now rejects when the derived safe-head block number does not match BootInfo.claimed_l2_block_number, closing the (l2_output_root, l2_block_number) binding gap (GHSA-5jh4-3p33-85xc).

What's Changed

  • fix(fault-proof): pin L1 block during sync to prevent RPC inconsistency by @fakedev9999 in #865
  • fix(ci): report all required check names on PRs to unblock merge queue by @fakedev9999 in #885
  • fix(host): surface real RPC failures in is_safe_db_activated by @fakedev9999 in #884
  • fix(fault-proof): correct resolve() invariant comment by @fakedev9999 in #881
  • fix(fault-proof): correct maxChallengeDuration return type to uint64 by @fakedev9999 in #891
  • fix(ci): drop missing FOUNDRY_PROFILE=ci to unbreak Foundry Test by @fakedev9999 in #892
  • fix(client): use canonical OP precompile set for fork-correct semantics by @fakedev9999 in #895
  • ci(eigenda): run eigenda-proxy ephemerally inside CI jobs by @fakedev9999 in #897
  • chore: release v4.3.1 by @fakedev9999 in #899

Full Changelog: v4.3.0...v4.3.1