{"id":"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 -\u003e 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.","aliases":["GHSA-hj49-h7fq-px5h"],"modified":"2026-04-15T04:48:51.812005Z","published":"2025-01-30T19:20:14.250Z","database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-1240"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/24xxx/CVE-2025-24802.json"},"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"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/0xpolygonzero/plonky2","events":[{"introduced":"0"},{"fixed":"091047f7f10cae082716f3738ad59a583835f7b6"}]}],"versions":["starky-v0.2.1","v0.2.0","v0.2.2","v0.2.3","v1.0.0"],"database_specific":{"source":"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2025-24802.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N"}]}