BTC
ETH
HTX
SOL
BNB
View Market
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

Mainnet could accept invalid proofs as Succinct's SP1 discloses high-severity vulnerability

Odaily reports that a high-severity reliability vulnerability has been disclosed in Succinct's zero-knowledge proof system SP1. The vulnerability was disclosed on October 11 via GitHub advisory GHSA-p7v2-jjv3-8p8f, affecting SP1 native Rust verifier versions 6.0.0 through 6.8.0, potentially allowing the mainnet Prover Network to accept invalid proofs: a malicious prover could submit a proof of invalid execution, and the network verifiers would still accept it. The cause of the vulnerability is that the verifier only reads the data's label (declared dimension) and does not verify whether the actual number of stored elements equals the product of the dimensions; an attacker could forge the label to make an invalid proof pass. Groth16 and Plonk checks that use fixed-shape wrap proofs are unaffected, and the on-chain Solidity verifier is also secure. Succinct released fix version 6.8.1 on September 24, which has been deployed to mainnet; this version adds deserialization length validation. The vulnerability was discovered by Vitalis Salis and reported through the Immunefi bug bounty program. Users who run the native Rust verifier themselves and accept untrusted proofs need to upgrade to 6.8.1.