CVE-2024-45039 in gnark
Zusammenfassung
von VulDB • 21.05.2026
gnark ist eine schnelle zk-SNARK-Bibliothek, die eine High-Level-API zum Entwerfen von Schaltungen (Circuits) bietet. Versionen vor 0.11.0 weisen ein Problem mit der Soundness auf: Bei der Verwendung mehrerer Commitments innerhalb der Schaltung kann der Prover alle Commitments außer dem letzten auswählen. Da gnark die Commitments für optimierte nicht-einheimische Multiplikationen, Lookup-Prüfungen usw. als zufällige Herausforderungen (Random Challenges) verwendet, kann dies die Soundness der gesamten Schaltung beeinträchtigen. Die Verwendung mehrerer Commitments wurde jedoch aufgrund der zusätzlichen Kosten für den Verifier abgeraten und wurde im rekursiven Groth16-Verifier in der Schaltung sowie im Solidity-Verifier nicht unterstützt. Die Maintainer von gnark gehen davon aus, dass die Auswirkungen des Problems sehr gering sind – sie betreffen nur Benutzer, die den einheimischen Groth16-Verifier implementiert haben oder ihn mit mehreren Commitments verwenden. Es liegen keine Informationen über solche Benutzer vor. Das Problem wurde in Version 0.11.0 behoben. Als Workaround sollten Benutzer der Empfehlung der gnark-Maintainer folgen, nur ein einzelnes Commitment zu verwenden und dann erforderliche Commitments in der Schaltung mithilfe des Pakets `std/multicommit` abzuleiten.
If you want to get best quality of vulnerability data, you may have to visit VulDB.