CVE-2025-24802
8.6
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N
Summary
Plonky2 is a SNARK implementation based on techniques from PLONK and FRI. Lookup tables, whose length is not divisible by 26 = floor(num_routed_wires / 3) always include the 0 -> 0 input-output pair. Thus a malicious prover can always prove that f(0) = 0 for any lookup table f (unless its length happens to be divisible by 26). The cause of problem is that the LookupTableGate-s are padded with zeros. A workaround from the user side is to extend the table (by repeating some entries) so that its length becomes divisible by 26. This vulnerability is fixed in 1.0.1.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| 0xPolygonZero | plonky2 | = 1.0.0 | affected |
Weaknesses
- CWE-1240: CWE-1240: Use of a Cryptographic Primitive with a Risky Implementation
ADP Enrichment
CISA ADP Vulnrichment
- SSVC:
- Exploitation: none
- Automatable: yes
- Technical Impact: partial
References
- https://github.com/0xPolygonZero/plonky2/security/advisories/GHSA-hj49-h7fq-px5h
- https://github.com/0xPolygonZero/plonky2/commit/091047f7f10cae082716f3738ad59a583835f7b6
- https://github.com/0xPolygonZero/plonky2/blob/main/plonky2/src/plonk/prover.rs#L97
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.