CVE-2024-45039 in gnark
Riassunto
di VulDB • 14/06/2026
gnark è una libreria zk-SNARK ad alte prestazioni che offre un’API di alto livello per la progettazione di circuiti. Le versioni precedenti alla 0.11.0 presentano un problema di soundness (correttezza): in caso di utilizzo di più commitment all’interno del circuito, il prover può scegliere tutti i commitment tranne l’ultimo. Poiché gnark utilizza i commitment come sfide casuali per ottimizzare moltiplicazioni non native, verifiche tramite lookup, ecc., ciò potrebbe compromettere la soundness dell’intero circuito. Tuttavia, l’utilizzo di più commitment è stato sconsigliato a causa del costo aggiuntivo imposto al verifier e non era supportato né nel verifier Groth16 ricorsivo in-circuit né nel verifier Solidity. I manutentori di gnark prevedono che l’impatto del problema sia molto limitato, riguardando solo gli utenti che hanno implementato il verifier Groth16 nativo o lo stanno utilizzando con più commitment. Non sono a conoscenza dell’esistenza di tali utenti. Il problema è stato risolto nella versione 0.11.0. Come soluzione alternativa, si consiglia agli utenti di seguire la raccomandazione dei manutentori di gnark: utilizzare un singolo commitment e derivare i commitment in-circuit quando necessario tramite il pacchetto `std/multicommit`.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.