Succinct SP1零知识证明系统曝出高危“健全性”漏洞

根据安全社区披露,由Succinct开发的零知识证明(ZK)系统SP1近期被发现存在一个高严重性的安全漏洞。该漏洞被归类为“健全性”缺陷,意味着它可能破坏整个证明系统的逻辑根基——即“错误”的陈述被错误地“证明”为正确。

漏洞核心:验证器逻辑缺陷导致主网暴露

此次漏洞的核心影响在于,它使得Succinct主网的Prover Network(证明者网络)暴露在风险之下。在漏洞存续期间,恶意的证明者有能力向网络提交针对无效或错误执行的“证明”,而网络的验证器却会错误地接受这些证明。

技术层面,问题根植于SP1的原生Rust验证器,具体影响版本为6.0.0至6.8.0。验证器在处理某些数据时存在逻辑缺陷:它仅读取了数据结构的“标签”(或声明的维度),却没有进一步验证实际存储的元素数量是否与标签所宣称的维度乘积相符。

攻击原理与影响范围

利用这一缺陷,攻击者可以通过伪造数据标签的手段,使得一个本应被拒绝的无效证明顺利通过验证器的检查。这直接威胁到依赖该验证器进行可信验证的应用场景的安全性。

  • 受影响组件:SP1原生Rust验证器(版本6.0.0 - 6.8.0)。
  • 不受影响组件:采用固定形状包装证明的Groth16和Plonk检查流程未发现此问题。同时,链上的Solidity检查器也是安全的,未受此漏洞波及。

响应与修复

Succinct团队在收到漏洞报告后迅速采取了行动。实际上,在公开披露此漏洞的17天前(即9月24日),公司已经发布了修复版本SP1 6.8.1。该修复版本的关键更新是增加了严格的反序列化长度校验逻辑,以确保数据声明的维度与实际内容完全匹配。目前,修复已部署至主网环境。

此漏洞由安全研究人员Vitalis Salis发现,并通过Immunefi漏洞赏金平台提交给了Succinct官方。

用户行动建议

对于任何自行运行SP1原生Rust验证器,并且需要处理来自不可信或第三方证明者提交的证明的用户或项目方,必须立即将验证器升级至已修复的6.8.1或更高版本,以消除安全风险。