ETHW confirma la explotación de la vulnerabilidad del contrato, descarta los reclamos de ataques de repetición

La cadena de prueba de trabajo (PoW) posterior a la fusión de Ethereum ETHW se ha movido para sofocar las afirmaciones de que había sufrido un ataque de repetición en la cadena durante el fin de semana.

La firma de auditoría de contratos inteligentes BlockSec marcó lo que descrito como un ataque de repetición que tuvo lugar el 16 de septiembre, en el que los atacantes recolectaron tokens ETHW reproduciendo los datos de llamadas de la cadena de prueba de participación (PoS) de Ethereum en la cadena Ethereum PoW bifurcada.

Según BlockSec, la causa raíz del exploit se debió al hecho de que el puente de cadena cruzada Omni en la cadena ETHW usaba un ID de cadena antiguo y no estaba verificando correctamente el ID de cadena correcto del mensaje de cadena cruzada.

Las redes Mainnet y de prueba de Ethereum utilizan dos identificadores para diferentes usos, a saber, una ID de red y una ID de cadena (chainID). Los mensajes punto a punto entre nodos utilizan el ID de red, mientras que las firmas de transacciones utilizan el ID de cadena. EIP-155 introdujo chainID como un medio 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 repetición y notificó a ETHW, que a su vez rechazó rápidamente las afirmaciones iniciales de que se había llevado a cabo un ataque de repetición en la cadena. ETHW intentó notificar a Omni Bridge sobre el exploit a nivel de contrato:

El análisis del ataque reveló que el explotador comenzó transfiriendo 200 WETH a través del puente Omni de la cadena Gnosis antes de reproducir el mismo mensaje en la cadena PoW, obteniendo 200ETHW adicionales. Esto resultó en el agotamiento del saldo del contrato de cadena desplegado en la cadena PoW.

Relacionado: Cadenas cruzadas en la mira: los piratas informáticos exigen mejores mecanismos de defensa

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

El equipo explicó que este no era el chainID correcto recopilado a través del código de operación CHAINID, que fue propuesto por EIP-1344 y exacerbado por la bifurcación resultante después de la fusión de Ethereum:

“Esto probablemente se deba al hecho de que el código es bastante antiguo (usando Solidity 0.4.24). El código funciona bien 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 luego intercambiarlos en los mercados que enumeran los tokens relevantes. Cointelegraph se comunicó con BlockSec para determinar el valor extraído durante el exploit.

Siguiendo Exitoso evento Merge de Ethereum que vio la transición de blockchain de contrato inteligente de PoW a PoS, un grupo de mineros decidió continuar la cadena de PoW a través de una bifurcación dura.