ETHW confirma la explotación de las vulnerabilidades del contrato y rechaza los reclamos de ataques de repetición



La cadena de prueba de trabajo (PoW) posterior a la fusión de Ethereum, ETHW, ha estado luchando para anular las afirmaciones de que sufrió un ataque de repetición en la cadena durante el fin de semana.

La firma de verificación de contratos inteligentes BlockSec ha llamado la atención sobre esto descrito como un ataque repetido, informado el 16 de septiembre, en el que los atacantes capturaron tokens ETHW reproduciendo datos de llamadas en cadena de Ethereum Proof-of-Stake (PoS) en la cadena Ethereum PoW bifurcada.

Según BlockSec, la causa raíz del exploit residía en el hecho de que el puente de cadena cruzada omni en la cadena ETHW usaba el antiguo ChainID y no verificó correctamente el ChainID correcto del mensaje de cadena cruzada.

La red principal y las redes de prueba de Ethereum utilizan dos identificadores para diferentes propósitos, a saber, una ID de red y una ID de cadena (chainID). Los mensajes de igual a igual entre nodos usan el ID de red, mientras que las firmas de transacciones usan el ChainID. EIP-155 introdujo ChainID para evitar ataques de repetición entre las cadenas de bloques ETH y Ethereum Classic (ETC).

BlockSec fue el primer servicio de análisis en marcar el ataque de reproducción y notificar a ETHW, que a su vez desestimó rápidamente las afirmaciones iniciales de que se había realizado un ataque de reproducción en cadena. ETHW intentó informar a Omni Bridge sobre el exploit a nivel de contrato:

El análisis del ataque reveló que el explotador comenzó a transmitir 200 WETH a través del Omni-Bridge de la cadena Gnosis antes de repetir el mismo mensaje en la cadena PoW, generando 200 ETHW adicionales. Esto resultó en el agotamiento del saldo del contrato de cadena apostado en la cadena PoW.

Relacionado: Cadenas cruzadas en la cruz: los hackers exigen mejores mecanismos de defensa

El análisis de BlockSec del código fuente de Omni-Bridge mostró que la lógica para verificar el ChainID estaba en su lugar, pero el ChainID verificado utilizado en el contrato se extrajo de un valor almacenado en el almacenamiento llamado unitStorage.

El equipo explicó que esta no era la ID de cadena correcta recopilada por el código de operación CHAINID propuesto por EIP-1344 y agravado por la bifurcación resultante después de la fusión de Ethereum:

“Probablemente esto se deba a que el código es bastante antiguo (con Solidity 0.4.24). El código funciona todo el tiempo hasta la bifurcación de la cadena PoW.

Esto permitió a los atacantes recolectar ETHW y potencialmente otros tokens propiedad del puente en la cadena PoW y comercializarlos en mercados que enumeran los tokens relevantes. Cointelegraph contactó a BlockSec para determinar el valor extraído durante el exploit.

Siguiendo El exitoso evento de fusión de Ethereum Al ver la transición de la cadena de bloques del contrato inteligente de PoW a PoS, un grupo de mineros decidió continuar la cadena de PoW a través de una bifurcación dura.