Un fallo de Radix Engine permitió a un atacante retirar alrededor de $1,26 millones en 26 transacciones el 31 de agosto, incluidos 458.915 USDC, 72.420 USDT, 61,08 ETH, 6,35 Bitcoin envueltos, 536,16 SOL y 32,91 BNB. El atacante también se hizo con 13.000 XRD para pagar las comisiones de transacción. Posteriormente, los validadores paralizaron la cadena de bloques de Radix durante más de 10 días, después de que los investigadores determinaran que el defecto podía afectar a cualquier bóveda, no solo a las cuentas objetivo del exploit.
Por qué es importante
RDX Works introdujo el defecto durante una limpieza de código de Radix Engine en junio de 2023. Se trata de la capa de ejecución responsable de procesar transacciones y hacer cumplir la propiedad de los activos. El fallo cambió la forma en que el motor gestionaba las referencias a bóvedas, lo que permitió que código de contratos inteligentes diseñado específicamente para ello pasara la bóveda de otro usuario a funciones normales de retirada sin comprobar correctamente los límites de propiedad.
Esto provocó un fallo a nivel de protocolo, no un problema aislado de una aplicación. El atacante transfirió los activos robados a Ethereum, BNB Chain y Solana mediante Hyperlane, y después los vendió por ETH. Hyperlane funcionó según lo previsto, porque los activos ya habían sido retirados de Radix antes de utilizar el puente.
Impacto en el mercado
El robo directo infravaloró la exposición potencial. Los investigadores de Radix concluyeron que las cuentas de usuarios, las aplicaciones y los fondos de liquidez podían haber estado en riesgo. Se produjeron pérdidas secundarias cuando se retiraron activos puenteados de los fondos de liquidez, distorsionando los precios y permitiendo que otra cuenta extrajera millones de XRD.
El fallo también había superado la auditoría independiente de 2024 realizada por Zellic sobre el protocolo de Radix, incluido el núcleo del motor que contenía el defecto. Los validadores desconectaron suficiente participación como para bloquear el consenso, mientras los desarrolladores añadían comprobaciones contra referencias no autorizadas a bóvedas. Las transacciones de los usuarios se reanudaron el 11 de septiembre. Radix afirmó que añadirá pruebas de regresión, reforzará las revisiones de seguridad y formalizará el proceso de emergencia utilizado para restablecer la seguridad de la red.
Preguntas frecuentes
-
¿Cuánto retiró el exploit de Radix de las bóvedas afectadas?
El atacante retiró activos por valor de unos $1,26 millones en 26 transacciones, además de 13.000 XRD utilizados para pagar las comisiones de transacción.
-
¿Qué provocó el fallo de autorización de Radix Engine?
Una refactorización realizada en junio de 2023 cambió la forma en que el motor gestionaba las referencias a bóvedas. El código de contratos inteligentes podía pasar la bóveda de otro usuario a funciones de retirada sin una comprobación adecuada de la propiedad.
-
¿Por qué los validadores de Radix paralizaron la cadena de bloques?
Los investigadores determinaron que el fallo podía afectar a cualquier bóveda de la red. Los validadores desconectaron suficiente participación para detener el consenso y evitar nuevas transacciones mientras los desarrolladores preparaban una solución.
-
¿El atacante comprometió las claves privadas de los usuarios?
No. Los activos se retiraron mediante el fallo de autorización de Radix Engine y no se comprometió ninguna clave privada.
-
¿Qué daños secundarios siguieron al robo inicial de Radix?
La retirada de activos puenteados de los fondos de liquidez distorsionó los precios y permitió que otra cuenta extrajera millones de XRD de los fondos afectados.