Le 2 février 2022, un attaquant a minté 120 000 wETH sur Solana sans ETH correspondant verrouillé sur Ethereum et a bridgé la majorité vers la sortie pour ~326 M$.
Ce qui s'est passé
Le programme Solana de Wormhole utilisait une instruction système dépréciée et non sécurisée pour vérifier l'ensemble de signatures de gardiens attachées à une VAA (Verified Action Approval). La vérification appelait solana_program::sysvar::instructions::load_instruction_at au lieu de load_instruction_at_checked plus récente, qui ne valide pas que le compte sysvar d'instructions fourni est le vrai.
L'attaquant a fourni un compte sysvar usurpé, faisant lire au vérificateur un payload de signature fourni par l'attaquant qui passait déjà la vérification. Avec cela, il a construit une VAA autorisant le mint de 120 000 wETH vers lui-même, complétant le mint et bridgeant 93 750 wETH vers Ethereum.
Conséquences
- Jump Trading, parent du mainteneur Jump Crypto de Wormhole, a réapprovisionné le manquement de 120 000 ETH en 24 heures pour garder wETH pleinement adossé sur Solana.
- Le patch — remplaçant l'appel par
load_instruction_at_checked— avait été mergé surmasterla veille de l'attaque mais n'avait pas été déployé en mainnet. - L'exploit reste le plus grand incident de pont côté Solana documenté.
Pourquoi c'est important
Wormhole a renforcé deux leçons récurrentes à travers les hacks de ponts de 2022 : déployez les correctifs immédiatement, et traitez toute fonction qui consomme des preuves cryptographiques pré-vérifiées comme partie de la frontière de confiance — y compris les comptes sysvar qu'elle lit.
Sources & preuves on-chain
- [01]medium.comhttps://medium.com/coinmonks/wormhole-hack-explained-1bf6c8e7e60f
- [02]twitter.comhttps://twitter.com/wormholecrypto/status/1489005494997475335
- 0xb6e5e7b0bcf2f80a813b29b3c891b8a9c5b1f8d7f8d4f8ed72a3e0fc8e1f3c4f