CVE-2026-61618CWE-20

SNARK Verifier: noncanonical accumulator limb decoding

Medium · published October 30, 2026

CVSS v4.0
6.9
EPSS
—
In the wild
Unconfirmed
What it is

SNARK Verifier is a generic (S)NARK verifier. Prior to 0.2.5, KZG accumulator public-instance limbs are decoded without consistently enforcing canonical limb bounds before elliptic-curve coordinate reconstruction. `PlonkProof::read` selects scalars using `accumulator_indices` and passes them to `AccumulatorEncoding::from_repr`. For the EVM loader, `LimbsEncoding::from_repr` forwards them to `EvmLoader::ec_point_from_limbs` in `snark-verifier/src/loader/evm/loader.rs`, where `shl` and `add` reconstruct coordinates before `validate_ec_point` checks the resulting affine point rather than the original limb bounds. The related native path in `snark-verifier/src/pcs/kzg/accumulator.rs` can reach assertion- or unwrap-based decoding and panic instead of returning a verification error. This allows noncanonical encodings at the verifier boundary and can crash the native verifier. Standard SDK aggregation circuits are expected to constrain accumulator limbs before this boundary, which limits practical exploitability. This issue is fixed in version 0.2.5.

The record
Technical detail
CVSS v4.0
6.9 · MEDIUM
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
EPSS
Not scored
Weakness
CWE-20 · Improper Input Validation
Published
2026-10-30T19:59Z
Timeline
  • 30 OCT 19:59Z
    SNARK Verifier: noncanonical accumulator limb decoding
    cvelistv5
  • 30 OCT 19:59Z
    SNARK Verifier: noncanonical accumulator limb decoding
    cvelistv5