El 2 de febrero de 2022, un atacante acuñó 120.000 wETH en Solana sin ETH correspondiente bloqueado en Ethereum y puenteó la mayoría de vuelta por ~$326M.
Qué ocurrió
El programa Solana de Wormhole usaba una instrucción de sistema deprecada e insegura para verificar el conjunto de firmas de guardianes adjuntas a una VAA (Verified Action Approval). La comprobación llamaba a solana_program::sysvar::instructions::load_instruction_at en lugar de la más reciente load_instruction_at_checked, que no valida que la cuenta sysvar de instrucciones suministrada sea la real.
El atacante proporcionó una cuenta sysvar suplantada, causando que el verificador leyera un payload de firma suministrado por el atacante que ya pasaba la verificación. Con eso, construyeron una VAA que autorizaba acuñar 120.000 wETH para sí mismos, completando la acuñación y puenteando 93.750 wETH de vuelta a Ethereum.
Consecuencias
- Jump Trading, matriz del mantenedor de Wormhole Jump Crypto, repuso el déficit de 120.000 ETH en 24 horas para mantener wETH plenamente respaldado en Solana.
- El parche — reemplazando la llamada por
load_instruction_at_checked— había sido fusionado enmasterel día antes del ataque pero no había sido desplegado en mainnet. - El exploit sigue siendo el mayor incidente documentado de puente del lado de Solana.
Por qué importa
Wormhole reforzó dos lecciones que recurrieron a lo largo de los hackeos de puentes de 2022: desplegar arreglos inmediatamente, y tratar cualquier función que consuma pruebas criptográficas pre-verificadas como parte del límite de confianza — incluyendo las cuentas sysvar que lee.
Fuentes y evidencia on-chain
- [01]medium.comhttps://medium.com/coinmonks/wormhole-hack-explained-1bf6c8e7e60f
- [02]twitter.comhttps://twitter.com/wormholecrypto/status/1489005494997475335
- 0xb6e5e7b0bcf2f80a813b29b3c891b8a9c5b1f8d7f8d4f8ed72a3e0fc8e1f3c4f