Volver al blog

Análisis breve de la explotación salvaje de CVE-2021–39137

Code Auditing
28 de agosto de 2021
3 min de lectura

CVE-2021-39137 es una vulnerabilidad que fue reportada y corregida hace unos días. Sin embargo, no todos los nodos de Ethereum han aplicado el parche. Observamos que esta vulnerabilidad ha sido explotada por una transacción maliciosa.

Transacción del Ataque

https://tx.blocksecteam.com/tx/0x1cb6fb36633d270edefc04d048145b4298e67b8aa82a9e5ec4aa1435dd770ce4

Esta transacción tiene un STATICCALL con la dirección 0x4. Este es un contrato inteligente precompilado dataCopy. El argumento es el siguiente.

inOffset = 0, inSize = 32, retOffset = 7 y retSize = 32.

El contrato inteligente 0x4

Figura 1

Dado que el objetivo del STATICCALL es el contrato precompilado 0x4, ejecutará la función RunPrecompiledContract mostrada en la Figura 1.

Figura 2

Figura 3

De acuerdo con las Figuras 2/3, el contrato inteligente 0x4 simplemente devuelve la referencia del puntero in.

Figura 4

Figura 5

La Figura 4 muestra el código del opcode STATICCALL. En la línea 751, args apunta a [inOffset ~ inOffset + inSize] de la memoria EVM, que es Mem[0:32].

De acuerdo con la Figura 5 y el análisis de la lógica del código de 0x04 (Figuras 2/3), el valor de retorno (ret) es una referencia a la misma memoria que args. Es decir, también apunta a Mem[0:32].

Vulnerabilidad

En el código vulnerable (versión 1.10.7), la línea 762 copia el contenido de ret en Mem[retOffset : retOffset + retOffset], es decir, copia Mem[0:32] en Mem[7:7+32]. Esta operación modifica accidentalmente el contenido de ret. Esto significa que el valor de retorno del contrato precompilado 0x4 ha sido modificado.

En la versión corregida (1.10.8), se realiza una copia de ret (línea 766). Esto soluciona la vulnerabilidad ya que la copia en la línea 767 no puede modificar el contenido de ret.

La vulnerabilidad CVE-2021–39137 fue explotada por una transacción maliciosa debido a que los nodos no actualizaron sus parches a tiempo. Este fallo involucró un defecto en las operaciones de memoria de la Máquina Virtual de Ethereum, pero ha sido corregido en la versión 1.10.8. Para garantizar la seguridad del sistema, se recomienda que todos los nodos de Ethereum actualicen a la última versión de inmediato.

Créditos

El ataque fue analizado por Siwei Wu, Yufeng Hu, Lei Wu, Yajin Zhou@BlockSec

Apúntate para recibir las novedades
Pérdidas de ~5,57 millones USD: exploits de X100 Freezer y NEM | Resumen semanal de BlockSec
Security Insights

Pérdidas de ~5,57 millones USD: exploits de X100 Freezer y NEM | Resumen semanal de BlockSec

Este informe semanal cubre dos incidentes de seguridad ocurridos en Ethereum y BNB Chain durante el período 19/10/2026–25/10/2026. Examina una toma de control de la gobernanza de X100 Freezer financiada mediante un préstamo flash y un fallo en la liquidación de impuestos que afectó a un pool de liquidez de un token NEM en BNB Chain. Las pérdidas estimadas dentro del alcance del informe suman aproximadamente 5,57 millones USD: ~4,75 millones USD de la transacción representativa de X100 y ~820 mil USD del incidente del pool de NEM. El total excluye las extracciones posteriores de X100 reportadas por separado.

Pérdidas de aproximadamente 3,87 millones USD: hackeos de Autheo Network y UNCX | Resumen semanal de BlockSec
Security Insights

Pérdidas de aproximadamente 3,87 millones USD: hackeos de Autheo Network y UNCX | Resumen semanal de BlockSec

Este informe semanal cubre 3 incidentes de seguridad correspondientes al período 12/10/2026–18/10/2026, con pérdidas totales estimadas en aproximadamente 3,87 millones USD. Autheo Network sufrió una vulneración de clave privada con pérdidas de aproximadamente 1,76 millones USD; Qubic Wallet perdió aproximadamente 1,30 millones USD debido a la generación de una semilla débil; y los contratos Smart Token Vesting V2 de UNCX Network sufrieron un error contable con pérdidas de aproximadamente 807 mil USD en Ethereum, BNB Chain, Base y Robinhood Chain. El análisis destacado de UNCX explica cómo un cálculo agregado de participaciones defectuoso mezcló tramos de adquisición de derechos creados con distintas proporciones entre tokens y participaciones, lo que permitió retiros excesivos de pools compartidos.

Pérdidas de ~542.000 dólares: explotación de MakerDaoBot | Resumen semanal de BlockSec
Security Insights

Pérdidas de ~542.000 dólares: explotación de MakerDaoBot | Resumen semanal de BlockSec

Ethereum (05–11/10/2026): 1 incidente; pérdida estimada de $542 mil. MakerDaoBot, sin control de acceso, dio a un adaptador malicioso acceso a sus saldos MakerDAO. Este cerró 4 subastas ETH-A y convirtió 200 ETH-A en WETH; el atacante los cambió por 200 ETH y se los envió.

El mejor auditor de seguridad para Web3

Valida el diseño, el código y la lógica de negocio antes del lanzamiento, siguiendo los estándares de seguridad más exigentes del sector.

Auditoría de BlockSec
Análisis breve de la explotación salvaje de CVE-2021–39137