CVE-2024-45040 in gnark
Riassunto
di VulDB • 22/06/2026
gnark è una libreria zk-SNARK ad alte prestazioni che offre un'API di alto livello per la progettazione di circuiti. Prima della versione 0.11.0, gli impegni (commitments) per i testimoni privati (private witnesses) in Groth16, così come implementati, violano la proprietà di zero-knowledge. La vulnerabilità interessa solo le prove Groth16 con impegni. In particolare, le prove PLONK non sono interessate. La vulnerabilità compromette la proprietà zero-knowledge delle prove: nel caso in cui i valori del testimone (segreti o interni) siano piccoli, l'attaccante potrebbe essere in grado di enumerare tutte le possibili scelte per dedurre il valore effettivo. Se le possibili scelte per le variabili da impegnare sono numerose o se ci sono molti valori impegnati, risulterebbe computazionalmente irrealizzabile enumerare tutte le scelte valide. La vulnerabilità non influisce sulla completezza o sulla correttezza (soundness) delle prove. La vulnerabilità è stata risolta nella versione 0.11.0. La patch per risolvere il problema consiste nell'aggiungere un valore casualizzato aggiuntivo all'elenco dei valori impegnati durante la fase di dimostrazione (proving) per mascherare gli altri valori impegnati. Come soluzione alternativa (workaround), l'utente può impegnare manualmente un valore casualizzato.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.