{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2025-24802","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","state":"PUBLISHED","assignerShortName":"GitHub_M","dateReserved":"2025-01-23T17:11:35.838Z","datePublished":"2025-01-30T19:20:14.250Z","dateUpdated":"2025-01-30T19:55:17.620Z"},"containers":{"cna":{"title":"Soundness issue with Plonky2 look up tables","problemTypes":[{"descriptions":[{"cweId":"CWE-1240","lang":"en","description":"CWE-1240: Use of a Cryptographic Primitive with a Risky Implementation","type":"CWE"}]}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":8.6,"baseSeverity":"HIGH","confidentialityImpact":"NONE","integrityImpact":"HIGH","privilegesRequired":"NONE","scope":"CHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N","version":"3.1"}}],"references":[{"name":"https://github.com/0xPolygonZero/plonky2/security/advisories/GHSA-hj49-h7fq-px5h","tags":["x_refsource_CONFIRM"],"url":"https://github.com/0xPolygonZero/plonky2/security/advisories/GHSA-hj49-h7fq-px5h"},{"name":"https://github.com/0xPolygonZero/plonky2/commit/091047f7f10cae082716f3738ad59a583835f7b6","tags":["x_refsource_MISC"],"url":"https://github.com/0xPolygonZero/plonky2/commit/091047f7f10cae082716f3738ad59a583835f7b6"},{"name":"https://github.com/0xPolygonZero/plonky2/blob/main/plonky2/src/plonk/prover.rs#L97","tags":["x_refsource_MISC"],"url":"https://github.com/0xPolygonZero/plonky2/blob/main/plonky2/src/plonk/prover.rs#L97"}],"affected":[{"vendor":"0xPolygonZero","product":"plonky2","versions":[{"version":"= 1.0.0","status":"affected"}]}],"providerMetadata":{"orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","shortName":"GitHub_M","dateUpdated":"2025-01-30T19:20:14.250Z"},"descriptions":[{"lang":"en","value":"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."}],"source":{"advisory":"GHSA-hj49-h7fq-px5h","discovery":"UNKNOWN"}},"adp":[{"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2025-01-30T19:54:59.096334Z","id":"CVE-2025-24802","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2025-01-30T19:55:17.620Z"}}]}}