Wormhole era uno de los puentes más activos entre Ethereum y Solana: se depositaba ETH en un lado, se recibía ETH envuelto (wETH) en el otro, y las monedas depositadas se mantenían en custodia en proporción 1:1. El 2 de febrero de 2022, un atacante falsificó una firma válida para un mensaje en el que el puente confiaba y acuñó 120.000 wETH —unos 325 millones de dólares— sin depositar nada, y luego extrajo del colateral del puente aproximadamente 250 millones de dólares en Ethereum real.
El fallo de verificación de firmas era conocido dentro del proyecto y se había escrito una corrección. Pero la corrección se subió al repositorio público de GitHub del proyecto el día del ataque, antes de llegar a producción. El commit se describió como una actualización rutinaria de versión, pero, como observó el desarrollador Matthew Garrett, el diff era demasiado grande para esa explicación, y les indicaba a todos los que lo observaban exactamente dónde estaba el punto débil. Horas después, fue explotado.
Wormhole anunció que la red estaba «caída por mantenimiento», confirmó el robo y ofreció al atacante una recompensa de 10 millones de dólares insertada en un mensaje on-chain. El ladrón nunca la aceptó. Al día siguiente, Jump Crypto —la firma de trading cuyos desarrolladores construyen Wormhole— repuso los 120.000 ETH para mantener la solvencia del puente, un rescate que CoinDesk informó y que Jump confirmó en Twitter.
325 millones de dólares en wETH acuñados de la nada; unos 250 millones de dólares drenados del colateral en Ethereum del puente; Solana cayó un 10 % ese día
El código corregido estaba en un repositorio público mientras producción seguía ejecutando la versión vulnerable: la corrección misma se convirtió en el manual de instrucciones del exploit.
El commit estaba etiquetado como una actualización rutinaria, pero su tamaño contradecía la etiqueta y anunciaba discretamente que había una corrección de seguridad en curso.
Publicar código y ejecutar código se trataban como actos separados, lo que en una blockchain pública nunca pueden ser.
Una verificación de firmas en un puente es un único punto que protege nueve cifras; una auditoría de Neodyme meses antes no había detectado el fallo.
Un repositorio público es un canal de despliegue, tanto si se pretende como si no. Si la corrección existe donde los atacantes pueden leerla, hay que hacer el commit y el despliegue juntos, o desplegar primero y publicar solo cuando todos los nodos estén parcheados.
La inyección de 120.000 ETH de Jump Crypto mantuvo el wETH respaldado 1:1 y detuvo el contagio en los mercados de préstamos DeFi de Solana, muchos de los cuales usaban wETH como colateral. El ladrón nunca fue identificado y la recompensa quedó sin respuesta. La brecha se convirtió en la evidencia canónica de la advertencia de Vitalik Buterin de que los puentes entre cadenas enfrentan «límites fundamentales» de seguridad, e impulsó a los equipos de puentes a retener las correcciones hasta completar el despliegue, y a tratar las auditorías como un piso, no como un techo.
CONSULTA LAS PRUEBAS
Las fuentes
- Wormhole cryptocurrency platform hacked for $325 million after error on GitHub The Verge · theverge.com ·
- $320 million stolen from Wormhole, bridge linking solana and ethereum CNBC · cnbc.com ·
- Jump Trading Backstops Wormhole's $320M Exploit Loss CoinDesk · coindesk.com ·