On 2 February 2022 an attacker minted 120,000 wrapped ETH on Solana through the Wormhole bridge without locking any ETH. CertiK's analysis traces it to a signature check that used a deprecated function and never confirmed the account it read was the real system account.
What happened
Wormhole moves assets between chains. On the Solana side, a program verified signatures before minting wrapped tokens. CertiK reports that the verification step relied on a deprecated function, load_current_index, which did not check that the supplied sysvar account was the genuine one.
The attacker supplied a fake sysvar account. The program then read instruction data the attacker controlled, and the signature check was defeated.
The three steps
Per the CertiK write up:
- The attacker passed the signature verification step using the spoofed account.
- They used the post message function to create a forged message that asked for a mint of 120,000 wETH.
- They called the completion function, which read the forged message and minted the tokens.
CertiK puts the loss at over 320 million dollars. Its tables vary slightly, so treat the exact figure as approximate.
Lessons for developers
- Validate every account a function uses, including system accounts that look too standard to be faked. This is the central lesson in the analysis.
- Be careful when verification is delegated to another function. That boundary is where checks are easy to miss.
- Bridges have several attack surfaces, and each needs its own protection.
- Review deprecated functions before reusing them, because they may carry unsafe assumptions.
How this differs from EVM bugs
The same principle exists on Ethereum, where contracts should not trust arbitrary addresses passed in by callers. On Solana, programs receive accounts as inputs, so account validation is a first order concern. Whichever chain you use, ask: who chose this input, and did I check it is the thing I expect?
A practical checklist
- List every external account or address your code reads.
- For each, write down how the code proves it is the expected one.
- Add tests that pass a lookalike in its place.
- Treat deprecation notices on security relevant functions as findings to review.
Quick check
Was this a flaw in Solana itself?
CertiK describes it as a flaw in the Wormhole program's verification logic, not in the chain.
Where do exact numbers come from?
Different analyses price the stolen assets differently. Use the number of tokens, 120,000 wETH, as the stable fact.
Sources
Last reviewed: 19 October 2026.