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

Vulnerabilidad en Rust EVM (CVE-2024-21629)

Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
02/01/2024
Última modificación:
09/01/2024

Descripción

Rust EVM es un intérprete de máquina virtual Ethereum. En "rust-evm", se introdujo una función llamada "record_external_operation", que permite a los usuarios de la librería registrar cambios de gas personalizados. Esta característica puede tener algunas interacciones falsas con la pila de llamadas. En particular, durante la finalización de `CREATE` o `CREATE2`, en el caso de que la ejecución de la subpila se realice exitosamente, `rust-evm` primero confirmará el subestado y luego llamará a `record_external_operation(Write(out_code.len()) )`. Si `record_external_operation` falla posteriormente, este error se devuelve a la pila de llamadas principal, en lugar de `Succeeded`. Sin embargo, el compromiso subestatal ya se produjo. Esto hace que los contratos inteligentes puedan realizar cambios de estado, cuando el contrato principal de la persona que llama recibe una dirección cero (lo que generalmente indica que la ejecución ha fallado). Este problema solo afecta a los usuarios de la librería con `record_external_operative` personalizado que devuelve errores. El problema se solucionó en la versión 0.41.1. No hay workarounds disponibles.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:evm_project:evm:*:*:*:*:*:rust:*:* 0.41.1 (excluyendo)