All vulnerabilities
CRITICALWeb3

WEB3-KUCOIN-2020

Web3 · CEX · KuCoin

Summary

On September 25, 2020, exchange KuCoin lost roughly $281 million in BTC, ETH and ERC-20 tokens after attackers gained access to the private keys controlling its hot wallets. KuCoin's own incident report confirmed the keys were exposed via a compromised server; the precise initial intrusion was not fully disclosed but is consistent with phishing or malware against personnel with key access, compounded by the operational weakness that the hot-wallet key pairs reportedly had not been rotated for around three years. Holding large balances in single-key-controlled hot wallets meant one key compromise allowed sweeping of multiple assets across chains. Chainalysis attributed the theft to North Korea's Lazarus Group, citing a structured money-laundering pattern (consistent sub-round-number payments to mixers and DeFi swaps via Uniswap) and deposit addresses shared with the Harvest Finance hack. KuCoin recovered the funds almost entirely: about 84% via on-chain tracking, token freezes and judicial action, with the remaining 16% covered by its insurance fund, leaving users unaffected.

How to avoid it in your code

  • Keep most assets in cold storage; minimize hot-wallet exposure per chain.
  • Adopt MPC/threshold signing or multisig so no single key authorizes withdrawals.
  • Rotate hot-wallet keys regularly and store them in hardware security modules.
  • Apply least-privilege access and segregate signing infrastructure from general servers.
  • Deploy withdrawal allowlists, rate limits, and real-time anomaly detection.

References

Related vulnerabilities

All Web3 →