1 min read
Add as a preferred source on Google

Succinct’s SP1 Flaw Could Let Mainnet Accept Invalid Proofs

The bug affected Rust verifier versions 6.0.0 through 6.8.0; a fix was released Sept. 24 and deployed to mainnet.

A steel pin sits outside a square grid on an inspection jig / TokenPost.ai
A steel pin sits outside a square grid on an inspection jig / TokenPost.ai

A high-severity flaw in Succinct’s SP1 zero-knowledge virtual machine could let the mainnet Prover Network accept invalid proofs, creating a security risk for projects that rely on its Rust verifier.

The bug affects SP1’s native Rust verifier versions 6.0.0 through 6.8.0. A malicious prover could submit a proof for an invalid execution, while a network verifier could still accept it. The verifier checked a data label describing a value’s dimensions but failed to confirm that the stored element count matched the dimensions’ product.

Succinct released version 6.8.1 on Sept. 24 with a deserialization length check and deployed the patch to mainnet. The flaw was disclosed on Oct. 11. Developers running the native Rust verifier and accepting proofs from untrusted provers need version 6.8.1.

The issue does not affect checks for fixed-shape Groth16 and Plonk wrap proofs or the on-chain Solidity verifier. Vitalis Salis found the flaw and reported it through Immunefi’s bug bounty program.

Simon Yoon

Reporter

Simon Yoon reports on blockchain technology for TokenPost. Send corrections or tips to info@tokenpost.com.

Loading…