IN SCOPE VULNERABILITIES
We are looking for evidence of attack that causes invalid proofs or state transitions to be accepted by either native or on-chain verification, including:
- Affirmative verification of an invalid/forged proof (false accept) by the Rust verifier or on-chain verifier
- Public input / instance mis-binding (e.g., wrong state root, block number, chain ID, or message commitments verified as if correct)
- Transcript / Fiat–Shamir malleability leading to proof reuse or altered challenges being accepted
- Polynomial-commitment / FRI / MSM / subgroup errors that allow constructing a proof passing verification with incorrect witness
- Aggregation bugs (batched or recursive proofs) that let invalid subproofs pass overall verification
- Verifier interface misuse (ABI / calldata packing, memory layout, or endianness errors) that accept malformed proofs
Please use the following tags for the source code:
- ADI-Stack-Airbender-Prover: v0.5.1-b
- ADI-Stack-Airbender-System: v0.5.1-b
- ADI-Stack-Contracts: zkos-v0.30.2 (commit 9ddc915c85d1f44c79b5d55e160d384138ed5105)
- ADI-Stack-Protocol: commit 767759541cd018e4271f9774f0d760ce727c905d
- ADI-Stack-zkOS-Wrapper: v0.5.3-b
Reports submitted before 05-10-2026 against the previous ADI-Stack-Contracts version (zkos-v0.29.11) will still be reviewed against that version.
Reports from any other source code version would be rejected.
Deployed verifier contracts: Ethereum mainnet (L1)
If your PoC uses a fork, use only these addresses.
| Contract |
Address |
| ZKsyncOSDualVerifier |
0xccbdfd7f9A8e60d0C1e79fa620205d14121e7a39 |
| ZKsyncOSVerifierFflonk |
0xF6b3708BE4192CE4526c2F87D4c3eABA79230E6A |
| ZKsyncOSVerifierPlonk |
0xC1288A84C5b2c93Ed4bF712fF4Bb96D862b32aa9 |
OUT OF SCOPE VULNERABILITIES
- Theoretical vulnerabilities without any proof or demonstration
- Sub-circuit-only vulnerabilities that cannot be recreated/leveraged for the full circuit statement
- Issues that require modifying the verifier/guest/circuit to exploit
- Documentation/test/demo issues
- Best-practice critiques, gas optimizations, rounding, or purely economic considerations without proof-soundness impact
- Attacks that rely on social engineering
- Attacks that rely on leaked toxic wastes during key generation
- Public Zero-day vulnerabilities
- Wrong proof acceptance not related to the proof verification procedure (it's a part of another bounty program), e.g.:
- Bypassing verification by calling finalization/bridge/rollup functions that don’t invoke the verifier
- Access-control/upgrade/config bugs that let an admin or external contract finalize state without going through the verifier
- Return-value misuse (verifier result ignored/mis-checked) or calldata routing bugs in contracts outside the verifier that lead to acceptance of a wrong state
- Any logic in L1/L2 contracts that lives outside the dedicated verifier functions (bridge, message passing, governance, pausing, fee/accounting, etc.).
- Vendor-specific or third-party modules not maintained by ADI Foundation, including but not limited to Matter Labs libraries or any components delivered by external vendors that are:
- Not part of the officially tagged source code repositories specified in scope
- Not under ADI Foundation’s direct maintenance or review process
- Reason: The program only intends to cover code under direct project control; vulnerabilities in third-party vendor libraries should be raised with the respective vendor bounty program or governance.
Example: the zkProof verification algorithm is out of scope because it belongs to another bounty program.
- Imported contracts or dependencies not written by the core ADI team unless:
- They are modified and part of the deployed on-chain ABI targeted in scope
- They are explicitly mentioned in our in-scope targets
- Vulnerabilities that are shared with vendor-maintained code (e.g., ZKsync) and were already fixed in the vendor’s public codebase prior to report submission are out of scope, regardless of whether the fix had been deployed to ADI Foundation contracts at that time.
Deprecated (out of scope)
| Contract |
Address |
| DualVerifier (old) |
0x28E31e2B74bc38c6cd58CF282807fCBa8C00C529 |