Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en gnark (CVE-2024-45039)

Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
06/09/2024
Última modificación:
20/09/2024

Descripción

gnark es una librería zk-SNARK rápida que ofrece una API de alto nivel para diseñar circuitos. Las versiones anteriores a la 0.11.0 tienen un problema de solidez: en caso de que se utilicen múltiples compromisos dentro del circuito, el probador puede elegir todos los compromisos excepto el último. Como gnark utiliza los compromisos para la multiplicación no nativa optimizada, las comprobaciones de búsqueda, etc. como desafíos aleatorios, podría afectar la solidez de todo el circuito. Sin embargo, se ha desaconsejado el uso de múltiples compromisos debido al coste adicional para el verificador y no se ha admitido en el verificador recursivo Groth16 en circuito ni en el verificador Solidity. Los mantenedores de gnark esperan que el impacto del problema sea muy pequeño: solo para los usuarios que han implementado el verificador nativo Groth16 o lo están utilizando con múltiples compromisos. No tenemos información de dichos usuarios. El problema se ha solucionado en la versión 0.11.0. Como workaround, los usuarios deben seguir la recomendación de los mantenedores de gnark de usar solo un único compromiso y luego derivar compromisos en circuito según sea necesario utilizando el paquete `std/multicommit`.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:consensys:gnark-crypto:*:*:*:*:*:*:*:* 0.11.0 (excluyendo)