All vulnerabilities
CRITICALWeb3

WEB3-WAZIRX-2024

Web3 · CEX · WazirX

Summary

On July 18, 2024 Indian exchange WazirX lost approximately $230M (about $234.9M) from a Safe (Gnosis) 4-of-6 multisig wallet held under a custody arrangement with Liminal (five WazirX keys plus one Liminal key). The attack was a blind-signing exploit: signers reviewed benign transaction details in the manipulated Liminal interface while the payload actually signed differed, authorizing a delegatecall (function selector 0x804e1f0a) that overwrote slot0 of the Safe proxy and repointed its implementation to an attacker-controlled contract (0xef279c2ab14960aa319008cbea384b9f8ac35fc6). Once the proxy pointed to attacker logic the wallet was fully controlled without further keys, and it was drained. The theft was attributed to North Korea's Lazarus Group, later confirmed in a joint statement by the US, South Korea and Japan in January 2025. Funds were laundered via Tornado Cash; victims are being repaid through a court-approved restructuring (resumed October 2025, BitGo custody) rather than direct recovery.

How to avoid it in your code

  • Require clear-signing and independent hash/calldata verification so multisig signers see the exact payload, never blind-signing UI-rendered summaries.
  • Verify delegatecall targets and any implementation/master-copy changes out-of-band before approving Safe transactions.
  • Use MPC or HSM-backed custody and segregate signer devices from the custody vendor's interface.
  • Monitor multisig proxy storage (slot0/implementation) for unexpected upgrades and alert on delegatecall to unknown contracts.
  • Audit and independently log third-party custody infrastructure; retain breach-window logs.

References

Related vulnerabilities

All Web3 →