{"id":"CVE-2025-24802","aliases":["GHSA-hj49-h7fq-px5h"],"url":"https://o3.security/vulnerability/CVE-2025-24802","summary":"Soundness issue with Plonky2 look up tables","details":"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.","published":"2025-01-30T19:20:14.250Z","modified":"2026-08-08T03:48:11.998338034Z","cvss":{"score":8.6,"severity":"HIGH","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N"},"epss":null,"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"crates.io","name":"plonky2","fixedVersion":"1.0.1"}],"fix":{"url":"https://github.com/0xPolygonZero/plonky2/commit/091047f7f10cae082716f3738ad59a583835f7b6","label":"0xPolygonZero/plonky2@091047f"},"references":[{"type":"WEB","url":"https://github.com/0xPolygonZero/plonky2/blob/main/plonky2/src/plonk/prover.rs#L97"},{"type":"ADVISORY","url":"https://github.com/0xPolygonZero/plonky2/security/advisories/GHSA-hj49-h7fq-px5h"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/24xxx/CVE-2025-24802.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-24802"},{"type":"FIX","url":"https://github.com/0xPolygonZero/plonky2/commit/091047f7f10cae082716f3738ad59a583835f7b6"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-08-08T03:48:11.998338034Z"}}