Skip to content

Plonky3 missing final polynomial degree check and randomness in FRI verifier

High
jonathanpwang published GHSA-4w7p-8f9q-f4g2 Jun 3, 2025

Package

cargo openvm (Rust)

Affected versions

< 1.2.0

Patched versions

1.2.0

Description

OpenVM is affected by the Plonky3 CVE GHSA-f69f-5fx9-w9r9

Vulnerability

The following vulnerabilities were found in the Plonky3 native (Rust) FRI verifier.

  • When rolling in polynomials of lower degree, the FRI prover and verifier were just adding in the low degree polynomials without any randomness. A malicious prover could potentially abuse this to make high degree parts of polynomials "cancel out".
  • The native FRI verifier was missing a final polynomial degree. This means that the prover could just pass in a high than expected degree polynomial and it wouldn't be caught.

The OpenVM recursive verifier in the openvm-recursion crate was not affected by the second vulnerability because the recursive verifier fixed the final polynomial degree to be 0 (constant).
However the recursive verifier did match the behavior of the native verifier for rolling in polynomials of lower degree, so the recursive verifier suffered from the same vulnerability as reported in the native FRI verifier in adding low degree polynomials without any randomness in multi-FRI verification.

Impact

Projects that use the OpenVM native verification SDK or CLI functions (e.g., such as verify_app_proof) are affected by both vulnerabilities in Plonky3.

Projects that use the recursive verifier, including the EVM smart contract verifier, are affected by the first vulnerability in the recursive verifier.

Patches

In v1.2.0 of OpenVM, the Plonky3 commit has been updated to a commit that fixes the native FRI verifier and hence fixes native verification functions in the SDK and CLI. Additionally in v1.2.0, the recursive verifier has been updated to fix the above vulnerabilities. The EVM and Solidity smart contract verifier for v1.2 uses the new recursive verifier and have fixed the vulnerability.

Severity

High

CVE ID

No known CVE

Weaknesses

No CWEs

Credits