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

Vulnerabilidad en gnark (CVE-2024-45040)

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. Antes de la versión 0.11.0, los compromisos con testigos privados en Groth16 tal como se implementaron rompen la propiedad de conocimiento cero. La vulnerabilidad afecta solo a las pruebas de Groth16 con compromisos. En particular, las pruebas PLONK no se ven afectadas. La vulnerabilidad afecta la propiedad de conocimiento cero de las pruebas: en caso de que los valores de los testigos (secretos o internos) sean pequeños, entonces el atacante puede enumerar todas las opciones posibles para deducir el valor real. Si las opciones posibles para las variables que se comprometerán son grandes o hay muchos valores comprometidos, entonces sería computacionalmente inviable enumerar todas las opciones válidas. No afecta la integridad/solidez de las pruebas. La vulnerabilidad se ha corregido en la versión 0.11.0. El parche para solucionar el problema es agregar un valor aleatorio adicional a la lista de valores comprometidos en el momento de la prueba para enmascarar el resto de los valores que se comprometieron. Como workaround, el usuario puede comprometerse manualmente con un valor aleatorio.

Productos y versiones vulnerables

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