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

Vulnerabilidad en RISC Zero (CVE-2025-52884)

Gravedad CVSS v4.0:
BAJA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
24/06/2025
Última modificación:
26/06/2025

Descripción

RISC Zero es una plataforma informática general verificable de conocimiento cero, con integración con Ethereum. El repositorio risc0-ethereum contiene los contratos del verificador de Solidity, la librería de llamadas de vista Steel EVM y código de soporte. En versiones anteriores a la 2.1.1 y la 2.2.0, la función de la librería de Solidity `Steel.validateCommitment` devolvía `true` para un compromiso manipulado con un valor de resumen de cero. Esto viola la semántica de `validateCommitment`, ya que no se compromete con un bloque que esté en la cadena actual. Dado que el resumen es cero, no corresponde a ningún bloque y no existen aperturas conocidas. Como resultado, este compromiso nunca será producido por un invitado zkVM correcto que utilice Steel, y aprovechar este error para comprometer la solidez de un programa que utilice Steel requeriría un error separado o un mal uso de la librería Steel, que se espera que se utilice para validar la raíz de las pruebas de apertura de estado. Se ha publicado una corrección como parte de `risc0-ethereum` 2.1.1 y 2.2.0. Los usuarios de la librería `Steel` de Solidity, versiones 2.1.0 o anteriores, deben asegurarse de usar `Steel.validateCommitment` junto con la verificación de pruebas de zkVM de un programa Steel, como se muestra en el contraejemplo ERC-20 y la documentación. Este es el uso correcto de Steel, y los usuarios que siguen este patrón no corren ningún riesgo y no necesitan tomar medidas. Los usuarios que no verifiquen una prueba de zkVM de un programa Steel deben actualizar su aplicación para hacerlo, ya que este es un uso incorrecto de Steel.