CVE-2025-24802
Soundness issue with Plonky2 look up tables
In short
Plonky2's lookup tables have a flaw where a dishonest prover can falsely prove that any function returns 0 when given 0 as input, unless the table size meets specific requirements. This breaks the security guarantee of proofs generated with affected lookup tables.
Technical detail
The vulnerability stems from zero-padding in LookupTableGate when table length is not divisible by 26 (floor(num_routed_wires / 3)), allowing a malicious prover to forge proofs for the f(0) = 0 input-output pair regardless of the actual lookup table contents. This soundness issue undermines the cryptographic integrity of PLONK-based SNARKs and is mitigated by padding tables to divisible lengths or upgrading to version 1.0.1.
Summary generated and translated by AI from the official description.
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.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N
Affected products
0xPolygonZero · plonky2Want to know if your infrastructure is exposed to this?
Talk to TrueHacking →