Autor: Laboratorio de Criptografía ChainX
La causa del ataque comenzó con una propuesta de gobernanza (MIP-X43), que habilitó una nueva configuración de oráculo Chainlink en el mercado Moonwell en las redes Base y Optimism. (Nota: un oráculo es una herramienta que obtiene datos en tiempo real antes de ser enviados a la cadena).

En protocolos de préstamo como Moonwell, los usuarios depositan activos como cbETH como garantía para tomar prestados otros tokens. Si el mercado cae y el valor de la garantía disminuye, cuando el valor de la garantía < deuda, los bots liquidan automáticamente la posición (los fondos totales del usuario), pagando la deuda y reteniendo la garantía con descuento.

Antes del incidente, el mercado de cbETH en Moonwell tenía mucho capital y muchas garantías, pero la prueba del oráculo fue insuficiente, omitiendo un paso en la multiplicación, lo que provocó errores graves en los precios y aumentó rápidamente el riesgo.
Este incidente es la primera falla de seguridad en la cadena provocada por Vibe Coding (codificación asistida por IA), cuyo núcleo es una vulnerabilidad de configuración del oráculo de bajo nivel pero mortal.

1. Causas de la vulnerabilidad
La raíz del problema fue una valoración incorrecta del activo cbETH por parte del oráculo. cbETH es un token de staking líquido cuyo valor incluye recompensas acumuladas. Normalmente, 1 cbETH puede canjearse por aproximadamente 1.12 ETH.

Por lo tanto, la lógica correcta para calcular el precio en dólares sería:
Precio en dólares de cbETH = (tasa de cambio cbETH/ETH) × (precio en dólares de ETH)
Por ejemplo: si 1 cbETH ≈ 1.12 ETH y 1 ETH ≈ 2200 USD, entonces el valor real de 1 cbETH sería aproximadamente 2464 USD.
Sin embargo, en el código generado por la herramienta de IA Claude, debido a la falta de una verificación lógica adecuada, se confundió la fuente del precio de cbETH con cbETHETH_ORACLE. Esta fuente solo proporciona la tasa de cambio cbETH/ETH (es decir, 1.12), pero no el precio en dólares de ETH.

Este error, que omitió el paso clave de multiplicación, hizo que el programa interpretara directamente la “tasa de cambio” como el “valor en dólares”. Un activo que en realidad vale más de 2400 USD fue marcado en el sistema como 1.12 USD, subestimando en más del 99.9%, con una diferencia de casi 2000 veces en el precio.
2. Restitución del ataque
La grave subestimación del activo llevó a que muchas posiciones de garantía de usuarios normales fueran mal evaluadas como “insolventes”. El proceso de explotación del fallo fue extremadamente eficiente y mostró características claramente automatizadas:
A las 2:01 UTC+8 del 16 de febrero de 2026: se ejecutó la propuesta MIP-X43 y se activó la configuración errónea del oráculo cbETH en la cadena Base.

Los bots de liquidación en la cadena monitorearon la oportunidad de ganancia, usando préstamos flash para tomar prestados rápidamente unos pocos USDC a muy bajo costo, pagando la deuda del prestatario (porque el sistema creía que 1 cbETH valía solo un dólar más) y así obteniendo el derecho a liquidar.

Tras embargar la garantía de cbETH, que tenía un valor muy alto, los bots la vendieron inmediatamente en un DEX a precio de mercado. Varias máquinas operaron en ciclos frenéticos en unos minutos, acumulando en total 1,096.317 cbETH en liquidaciones.

Este ataque no fue obra de hackers con planificación previa, sino de bots de liquidación ejecutando código absurdo. Como no hubo un “ladrón” en el sentido tradicional, ¿a quién le fue a parar ese enorme monto de 1.78 millones de dólares que desapareció? Solo queda seguir la pista del flujo de fondos.
Dado que no hubo un hacker tradicional, ¿a quién le fue a parar ese enorme monto de 1.78 millones de dólares que desapareció de la nada?
¿A dónde fue el dinero?
Respuesta: a los arbitrajistas que desplegaron los bots de liquidación.
Los bots de liquidación no aparecen de la nada; son scripts automatizados escritos y desplegados en la cadena por programadores reales o equipos de cuantitativos (buscadores de MEV). Cuando el sistema, por un error de IA, subestimó un multiplicador y vendió un activo de 2400 USD a un precio ridículo de solo unos dólares, estos bots, como cazadores, detectaron la oportunidad instantáneamente.

Automáticamente pagaron la deuda en dólares de unos pocos dólares, robaron las garantías de alto valor y las vendieron en el mercado a precio real. La diferencia de casi 1.78 millones de dólares terminó en las carteras personales de los propietarios de los bots. Aprovecharon la vulnerabilidad del sistema y, de manera legal y conforme a las reglas, lograron retirar millones.
En este incidente, el sistema sufrió pérdidas en 11 tipos de activos, con las siguientes cifras:

Tras el incidente, el equipo de Moonwell suspendió rápidamente los préstamos y liquidaciones, y presentó una propuesta de corrección para reconfigurar los parámetros del oráculo. Para recuperar la confianza, la plataforma usó fondos del tesoro para cubrir la deuda de 178,000 USD y compensar a los usuarios afectados por las liquidaciones.

Tras el incidente, la mayoría opinó que “Claude escribió un código mortal”, pero objetivamente, culpar a la IA por esos 178,000 USD es algo injusto.
Este fallo no fue un error complejo ni sofisticado, sino un error de configuración muy simple: omitir un multiplicador.
Honestamente, incluso un programador humano podría cometer un error tan básico.
Lo que realmente fue fatal fue que todo el proceso de revisión del proyecto fue una ilusión. Antes de lanzar, nadie verificó manualmente si los precios eran razonables. Si das instrucciones correctas, la IA puede ayudarte a escribir casos de prueba para evitar errores.
Por eso, la mayor lección no es “la IA no puede programar”, sino que, por ahorrar tiempo, se dejó de lado la revisión clave.
Por muy útil que sea la IA, no tiene concepto del dinero real ni puede responsabilizarse. La IA nunca reemplazará completamente a los humanos; es solo una herramienta muy útil. Solo los humanos deben usar IA, nunca dejar que la IA decida por sí misma.
El incidente en Moonwell no es muy complejo: no hubo hackers de élite, ni vulnerabilidades profundas, ni ataques sofisticados. Solo fue un error de código de la IA, y los humanos no prestaron suficiente atención.
Pero en el mundo blockchain, un descuido en el código puede significar millones de dólares en dinero real. En DeFi, el código es la regla; cuando esa regla está en la cadena, las máquinas la ejecutan sin dudar. A medida que más proyectos dependen de “Vibe Coding”, la auditoría de código y la gestión de riesgos deben ser la última línea de defensa.
La tecnología puede automatizarse cada vez más, pero la seguridad nunca debe automatizarse.