CVE-2024-45040 in gnarkinformação

Sumário

de VulDB • 04/06/2026

gnark é uma biblioteca zk-SNARK rápida que oferece uma API de alto nível para o design de circuitos. Antes da versão 0.11.0, os compromissos (commitments) com testemunhas privadas no Groth16, conforme implementados, violam a propriedade de zero-knowledge. A vulnerabilidade afeta apenas as provas do Groth16 que utilizam compromissos. Notavelmente, as provas PLONK não são afetadas.

A vulnerabilidade impacta a propriedade de zero-knowledge das provas: caso os valores da testemunha (secreta ou interna) sejam pequenos, o atacante pode ser capaz de enumerar todas as escolhas possíveis para deduzir o valor real. Se as possibilidades para as variáveis que devem ser comprometidas forem grandes ou se houver muitos valores comprometidos, seria computacionalmente inviável enumerar todas as escolhas válidas. A vulnerabilidade não afeta a completude (completeness) nem a correção (soundness) das provas.

A vulnerabilidade foi corrigida na versão 0.11.0. O patch para resolver o problema consiste em adicionar um valor aleatório adicional à lista de valores comprometidos no momento da prova, para mascarar os demais valores que foram comprometidos. Como solução alternativa (workaround), o usuário pode comprometer manualmente um valor randomizado.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsável

GitHub M

Reservar

21/08/2024

Divulgação

06/09/2024

Moderação

aceite

Entrada

VDB-276721

CPE

pronto

EPSS

0.00427

KEV

não

Atividades

muito baixo

Fontes

Do you want to use VulDB in your project?

Use the official API to access entries easily!