{"id":"CVE-2026-48100","url":"https://www.cyber-defence.io/tools/cve/CVE-2026-48100","generatedAt":"2026-10-28T02:58:19.966Z","title":"RollupV1.verifyRollup() then parses that public input as a normal burn and transfers USDC from the rollup contract to the attacker.","description":"Payy is an Ethereum L2 zk-rollup for privacy preserving and regulatory compliant transactions. Prior to version 1.3.0, agg_agg forwards the compacted message stream from its inner proofs into a public messages: [Field; 1000] array, but it never checks that the unused tail of the outer array is zero. A registered prover can build a valid agg_final proof for an approved rollup block while inserting an extra burn message after the real messages. RollupV1.verifyRollup() then parses that public input as a normal burn and transfers USDC from the rollup contract to the attacker. This is a severe circuit soundness failure: the proof system accepts a public statement whose messages array is not fully derived from the verified inner proofs. On the current deployment, verifyRollup() is restricted to the existing allowlisted prover, so a fresh public caller cannot submit the invalid proof directly. That gate limits who can reach L1 today; it does not make the circuit statement sound. The issue becomes permissionless under the prover model described in the Payy whitepaper. Section 3.3.2 states: \"To join as a prover, the prover is required to submit a small stake\", and Section 3.3.1 states that if a prover fails to submit, \"other nodes can submit the block proof instead.\" In that model, an attacker only needs to become a registered prover and use public validator approval data for an already approved block. This issue has been patched in version 1.3.0.","published":"2026-09-28T17:17:50.000Z","lastModified":"2026-09-30T19:57:08.000Z","status":"Deferred","sourceIdentifier":"security-advisories@github.com","cvss":{"version":"4.0","score":8.7,"severity":"HIGH","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/M"},"cwe":["CWE-349"],"affected":[],"epss":{"score":0.0018,"percentile":0.0753,"date":"2026-10-26","history":[{"date":"2026-09-29","score":0.0018,"percentile":0.06819}]},"kev":{"listed":false},"exploits":{"count":0,"verified":false,"firstPublished":null,"source":"Exploit-DB (https://gitlab.com/exploit-database/exploitdb)","entries":[]},"verdict":{"level":"high","text":"High impact if exploited, but EPSS currently rates exploitation as unlikely (0.18%). Schedule it in the normal patch cycle and watch for a rise in EPSS or a public exploit."},"changes":[{"kind":"new","label":"New CVE","at":"2026-09-28T17:17:50.000Z","detail":{"score":"8.7","severity":"HIGH","publishedAt":"2026-09-28T17:17:49.547Z"},"summary":"New CVE, high severity (CVSS 8.7)."}],"references":[{"url":"https://github.com/polybase/payy/security/advisories/GHSA-fhxc-63vg-9gwr","source":"security-advisories@github.com"},{"url":"https://github.com/polybase/payy/security/advisories/GHSA-fhxc-63vg-9gwr","source":"134c704f-9b21-4f2e-91b3-4a467353bcc0"}],"sources":{"nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-48100","epss":"https://www.first.org/epss/","kev":"https://www.cisa.gov/known-exploited-vulnerabilities-catalog","exploitdb":"https://www.exploit-db.com/"},"licence":"CC BY 4.0 — link back to the CVE Explorer if you publish the results; upstream data remains subject to its own terms."}