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

Vulnerabilidad en la cadena canónica en el contrato de copia de datos precompilado en Go Ethereum, o "Geth" (CVE-2020-26241)

Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
25/11/2020
Última modificación:
03/12/2020

Descripción

Go Ethereum, o "Geth", es la implementación oficial Golang del protocolo Ethereum. Esta es una vulnerabilidad de Consensus en Geth versiones anteriores a 1.9.17 que puede ser usada para causar una división de cadena donde unos nodos vulnerables rechazan la cadena canónica. El contrato de copia de datos precompilado de Geth (en 0x00 ... 04) hizo una copia superficial en la invocación. Un atacante podría implementar un contrato que escribe X en una región de memoria R de EVM, luego llama a 0x00..04 con R como argumento, luego sobrescribe R en Y y finalmente invoca el código de operación RETURNDATACOPY. Cuando este contrato es invocado, un nodo consensus-compliant empujaría X en la pila de EVM, mientras que Geth empujaría Y. Esto es corregido en la versión 1.9.17

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:ethereum:go_ethereum:*:*:*:*:*:*:*:* 1.9.17 (excluyendo)