tradingkey.logo
tradingkey.logo
Pesquisar

Bug no SP1 deixou o Prover Network mainnet da Succinct exposto a provas inválidas

Cryptopolitan23 de out de 2026 às 22:40
facebooktwitterlinkedin
Ver todos os comentários(0)

Um bug de sanidade de alta gravidade no sistema de prova de conhecimento zero (zero-knowledge) da Succinct, o SP1, expôs a própria Rede Prover principal da empresa a provas inválidas.

A rede foi a única implantação conhecida pela Succinct que foi afetada, segundo um aviso de segurança no GitHub publicado em 11 de outubro.

Verificadores nativos Rust nas versões 6.0.0 a 6.8.0 podiam aceitar provas inválidas

O aviso, registrado como GHSA-p7v2-jjv3-8p8f, indica que um provador malicioso poderia enviar uma prova para uma execução inválida e o verificador da rede a aceitaria. A Rede de Provadores aceitava provas de provadores de terceiros.

Para explorar a falha, as provas precisavam ser enviadas diretamente ao verificador nativo em Rust do SP1. As provas Core e Compressed estavam expostas nesse caminho.

As verificações Groth16 e Plonk estavam seguras, pois utilizavam provas encapsuladas com formas fixas e nunca tocavam no formato de tensor controlado pelo provador que continha a vulnerabilidade.

Os verificadores em Solidity para as verificações on-chain de Plonk e Groth16 também não foram afetados. Aplicativos que usam a função verify_sp1_proof para verificar provas Compressed só estavam seguros se a agregação de provas terminasse em uma prova Groth16 ou Plonk.

O aviso informa que as versões de 6.0.0 a 6.8.0 dos pacotes sp1_hypercube, sp1_prover e sp1_sdk são afetadas. A correção foi enviada pela Succinct na versão 6.8.1, em 24 de setembro, 17 dias antes do aviso ser tornado público.

O bug do SP1 expôs a própria Rede Provedora da Succinct.
O aviso de segurança GHSA-p7v2-jjv3-8p8f da Succinct no GitHub, classificado como de alta gravidade, lista as versões 6.0.0 a 6.8.0 do sp1_hypercube, sp1_prover e sp1_sdk como afetadas e a 6.8.1 como corrigida.

Tensores cujos comprimentos de armazenamento não correspondem são descartados pela versão 6.8.1

O verificador nativo em Rust do SP1 apresentava a falha. Esta é a parte do programa que verifica se uma prova é válida.

O SP1 armazena dados multidimensionais em um Tensor. Um Tensor consiste em um buffer de valores armazenados e dimensões declaradas que descrevem sua forma.

Ambos precisam ser conferidos para uma verificação sólida. O número de elementos armazenados deve ser igual ao produto das dimensões fornecidas.

Um rótulo em cada parte dos dados de prova indica seu tamanho. O verificador nunca verificava se o que estava no rótulo correspondia ao conteúdo interno; ele apenas observava o rótulo.

Assim, um atacante poderia enviar dados com um rótulo falso. Diferentes partes da verificação então analisariam várias partes dos mesmos dados, o que permitiria que uma prova falsa fosse aceita.

Com a versão 6.8.1, há agora uma verificação de comprimento na desserialização. Qualquer tensor cujo número de elementos armazenados não seja igual ao produto de suas dimensões declaradas é rejeitado.

Após o lançamento da versão 6.8.1, a Succinct implementou a correção na Rede Prover da mainnet.

As pessoas que solicitam provas da rede não precisam alterar nada do seu lado. Qualquer pessoa que execute seu próprio verificador nativo em Rust e aceite provas de provers não confiáveis precisa atualizar para a versão 6.8.1.

Vitalis Salis encontrou a falha e a reportou por meio do programa de recompensas por bugs do Immunefi, conforme indicado no advisory.

Outros bugs de sanidade em sistemas de prova, incluindo um bug de sanidade na pool blindada Orchard da Zcash, foram reportados este ano pela Cryptopolitan. A Cryptopolitan também discutiu uma exploração no Foom.Cash onde um atacante forjou provas zkSNARK devido a uma configuração incorreta do verificador.

Se você está lendo isso, já está à frente. Mantenha-se assim com nosso boletim informativo.

Aviso legal: as informações fornecidas neste site são apenas para fins educacionais e informativos e não devem ser consideradas consultoria financeira ou de investimento.

Comentários (0)

Clique no botão $, digite o código do ativo e selecione para vincular uma ação, ETF ou outro ticker.

0/500
Diretrizes de comentários
Carregando...

Artigos recomendados

tradingkey.logo
Aviso de risco: Nosso site e aplicativo móvel fornecem apenas informações gerais sobre determinados produtos de investimento. A Finsights não oferece, e o fornecimento de tais informações não deve ser interpretado como se a Finsights estivesse oferecendo, aconselhamento financeiro ou recomendação para qualquer produto de investimento.
Os produtos de investimento estão sujeitos a riscos significativos, incluindo a possível perda do valor investido e podem não ser adequados para todos. O desempenho passado dos produtos de investimento não é indicativo de seu desempenho futuro.
A Finsights pode permitir que anunciantes ou afiliados realizem, ou forneçam anúncios em nosso site, ou aplicativo móvel, ou em qualquer parte deles e pode ser compensada por eles com base em sua interação com os anúncios.
 © Copyright: FINSIGHTS MEDIA PTE. LTD. Todos os direitos reservados.