All vulnerabilities
CRITICALWeb3

WEB3-MTGOX-2014

Web3 · CEX · Mt. Gox

Summary

Mt. Gox, then the largest Bitcoin exchange, halted withdrawals on February 7, 2014 and filed for bankruptcy in Tokyo on February 28, 2014 after roughly 850,000 BTC (around 750,000 customer coins plus 100,000 company coins, worth roughly $450 million at the time) was found missing. The losses were not a single break-in but years of undetected drain: an early compromise of the exchange's poorly secured private keys, including a wallet.dat file accessible on a server from the McCaleb era, gave attackers persistent access while Mt. Gox lacked cold storage, audited reserves, and reconciliation controls. The exchange publicly blamed transaction-malleability exploitation, but ETH Zurich researchers concluded malleability accounted for at most a few hundred BTC, so the precise vector remains disputed and was likely long-running key theft and skimming masked by broken accounting. About 200,000 BTC was later recovered in an old wallet. In 2023 the U.S. DOJ indicted Russian nationals Alexey Bilyuchenko and Aleksandr Verner for laundering the stolen bitcoin; creditor repayments began rolling out a decade later.

How to avoid it in your code

  • Keep the overwhelming majority of customer funds in air-gapped cold storage; hot wallets hold only operational float.
  • Use multisig or MPC/threshold signing so no single leaked key authorizes withdrawals.
  • Run continuous proof-of-reserves and automated ledger-to-chain reconciliation to detect drain early.
  • Rotate keys, segregate infrastructure, and never store wallet.dat or private keys on shared application servers.
  • Enforce withdrawal rate limits, allowlists, and anomaly detection on outbound transactions.

References

Related vulnerabilities

All Web3 →