Hackean un protocolo DeFi inactivo desde hace más 3 años en Ethereum

  • El contrato validaba pruebas matemáticas pero no chequeaba si quien las enviaba tenía autorización.

  • Contratos antiguos de Ethereum son blancos de ataques con IA.

E l pasado 14 de junio un atacante drenó más de USD 2,1 millones de los contratos abandonados de Aztec Connect, un protocolo de finanzas descentralizadas (DeFi) en Ethereum sin actividad desde 2023, según confirmó Aztec Labs, la empresa detrás de Aztec Connect. La firma de seguridad BlockSec había informado previamente sobre el robo.

Aztec Connect, lanzado en 2022, funcionaba como un puente (bridge) de Ethereum con tecnología de privacidad basada en pruebas de conocimiento cero (zk, un sistema que agrupa muchas transacciones y demuestra matemáticamente que son válidas sin revelar sus detalles).

Publicidad

El protocolo fue descontinuado en marzo de 2023, cuando el equipo de Aztec Labs dejó de aceptar depósitos y redirigió sus recursos a la red Aztec actual. El contrato afectado por el robo, llamado RollupProcessorV3, seguía conteniendo fondos de usuarios que nunca los retiraron.

En 2024 Aztec Labs renunció formalmente a sus llaves de administrador sobre ese contrato, dejándolo completamente inmutable (sin posibilidad de pausarlo ni actualizarlo por nadie, ni siquiera por su creador).

La transacción que originó el robo, según BlockSec, incluyó 909 ETH (ether), 270.000 DAI (una stablecoin) y 167 wstETH (ether envuelto en staking, una versión que sigue generando rendimiento mientras se usa en otros protocolos), además de montos menores de otros activos.

Datos de transacciones en la red de criptomoneds Ethereum sobre un hackeo.
El protocolo Aztec Connect fue drenado por más de USD 2 millones. Fuente: BlockSec.

Una prueba válida, pero sin permiso

Desde BlockSec aseguran que la causa del ataque es una falla de control de acceso en la función processRollup() del contrato RollupProcessorV3. Esa función debía verificar dos cosas antes de aceptar una operación, que quien la enviaba fuera un proveedor de rollup autorizado, es decir, una dirección habilitada para empaquetar las operaciones de muchos usuarios en un solo lote y enviarlo al contrato para que las procese todas juntas.

Por otro lado, que estuviera activado un mecanismo de emergencia conocido como escape hatch (vía de escape), pensado para que los usuarios pudieran retirar sus fondos por su cuenta si el sistema dejaba de operar. Conforme a las investigaciones de BlockSec, ninguna de las dos condiciones se exigía realmente en el código, lo que dejó la función abierta a cualquiera.

En la práctica, el contrato solo revisaba que la prueba criptográfica basada en ZK presentada fuera matemáticamente consistente, sin chequear quién la enviaba. El atacante aprovechó esa omisión, según explicó el equipo de BlockSec.

«El análisis inicial sugiere que la causa raíz podría ser un control de acceso faltante en processRollup(), una función que debía exigir un proveedor de rollup autorizado o que la vía de escape estuviera activa, pero la implementación no exigía ninguna de las dos condiciones», señaló la firma.

Desde otra firma de seguridad, ExVul, describieron el fallo como una lógica de «prueba válida, pero sin permiso», y se detalló que el atacante presentó pruebas de rollup falsificadas que cumplían los chequeos matemáticos sin respaldo real en fondos, lo que le permitió actualizar el estado del sistema y ejecutar una serie de retiros no autorizados.

Contratos abandonados, blanco recurrente

El caso de Aztec Connect no es un hecho aislado. En marzo, CriptoNoticias reportó un patrón similar en otro contrato llamado Noda, de seis años de antigüedad y menos de 300 líneas de código, que fue drenado por una falla en la verificación de firmas que nunca fue corregida.

El mecanismo de ese ataque fue distinto al de Aztec Connect (en Noda, el contrato aceptaba cualquier firma válida de una dirección sin chequear a qué operación correspondía, mientras que en RollupProcessorV3 la falla estaba en quién podía llamar a una función), pero ambos casos comparten la misma raíz, código desplegado hace años, sin mantenimiento activo, que sigue teniendo control sobre fondos o permisos de usuarios.

Ese punto en común fue señalado por el equipo de Keystone (empresa creadora de una de las hardware wallets más utilizadas del mercado) al analizar el caso Noda, como lo notificó CriptoNoticias. Según Keystone, cuando un usuario aprueba un contrato DeFi para mover sus tokens, esa autorización no tiene fecha de vencimiento, por lo que contratos aprobados hace seis años o más siguen teniendo acceso a esos fondos aunque el protocolo ya no esté activo. Una hardware wallet no mitiga ese riesgo, ya que protege las claves privadas, no las aprobaciones ya otorgadas.

A esto se suma otro factor agravante: atacantes están usando modelos de inteligencia artificial para rastrear contratos antiguos en Ethereum y detectar vulnerabilidades como las de Noda o Aztec Connect a una escala que sería inviable de forma manual. De confirmarse esa hipótesis, el universo de contratos «olvidados» con fondos o permisos activos pasaría de ser un riesgo disperso a un blanco sistemático. Según Maximilano Carjuzaa, cofundador de Mooney On Chain, casi el 100% de los exploits encontrados en los últimos meses tuvieron relación con el uso de IA de alguna manera.

La paradoja es que la misma tecnología que podría usarse para encontrar estas fallas también las genera. En febrero de 2025, el protocolo Moonwell perdió USD 1,7 millones por un error en un contrato escrito con asistencia de un modelo de IA, que pasó todas las revisiones humanas sin ser detectado. Entre contratos viejos que nadie revisa y código nuevo que tampoco se revisa lo suficiente, la pregunta de cuántas vulnerabilidades de este tipo siguen sin descubrirse en Ethereum queda abierta.

También te puede interesar