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.
CVE ID: CVE-2025-24802
CVSS Base Severity: HIGH
CVSS Base Score: 8.6
CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N
Vendor: 0xPolygonZero
Product: plonky2
EPSS Score: 0.05% (probability of being exploited)
EPSS Percentile: 18.25% (scored less or equal to compared to others)
EPSS Date: 2025-02-28 (when was this score calculated)