Product1 publisher2 min readPublished
Bitget's own approval process moved out $388 million on spoofed transaction data
Bitget says attackers took over a wallet backend system and fed its authorization process spoofed data, moving out $387.5 million without stolen keys. For teams running payouts, the data an approver trusts now belongs on the same review list as the keys.
The Product Desk · Product desk

What happened
- Bitget's security systems detected unauthorized transfers from some of its hot wallets at 18:31 UTC on September 24, 2026.
- CEO Gracy Chen said investigators had ruled out any compromise of the exchange's private keys.
- Bitget raised its loss figure from $351.6 million to about $387.5 million after adding Zcash and TRON balances left out of its first count.
- Chen and the analytics firm Elliptic both link the theft to North Korea, citing matching VPN IP addresses and on-chain ties to addresses used to launder the Bybit heist.
Compiled by The Product DeskSomething wrong?How this is made
Why it matters
- exposure A custody review that checks only where signing keys live would have passed Bitget's setup, because the funds left through an approval step that acted on a compromised backend's data.
- cost Bitget's guarantee is held in bitcoin, so if bitcoin trades below about $70,450 when payouts settle, the 5,500-coin fund is worth less in dollars than the $387.5 million loss.
- constraint Issuer freezes offer little recovery here: the one address Circle and Tether blacklisted held about 0.08 percent of the loss, and most EVM proceeds were already in ether.
A Bitget customer who logs in after the theft sees the same balance as before. Chen has told customers their balances remain accurate and that the whole loss sits inside Bitget's User Protection Fund, which she valued at more than $464 million [11]. That customer can still deposit and trade. They cannot withdraw while a security review runs [13]. Paying for the loss would use up at most about 84 percent of the fund [2].
Here's what custody teams tell themselves: if the keys are safe, the money is safe. At Bitget, the keys were safe. Its cold wallets were not hit, and the breach reached only parts of the hot and warm wallet layers [2]. Chen described the route the attacker actually took on X. "The attacker compromised a critical backend system within our wallet infrastructure, used it to spoof transaction data, and triggered our authorization process to move funds out," she wrote [4]. Gizmodo summarised it this way: the payouts looked legitimate to Bitget's internal system [5].
In Chen's account, the approval step acted on false data from a system the attacker already controlled [4]. That account comes from Bitget alone. The company has not said which backend system was compromised or how the attacker reached it, and Mandiant and SlowMist are still helping with the investigation [6].
Bitget's first loss figure was $35.9 million short, and the revision added about 10 percent to it [1]. The public token breakdown came from the on-chain tracker Lookonchain, which put 102.93 million XRP, worth about $157.48 million, at the top of the list [9]. That one token is about 41 percent of the revised total [5].
A team that runs automated payouts can sort each of its approval paths on a 2x2. One axis asks whether the system that requests a payout can also write the data the approver checks. The other asks whether approval releases funds with no offline step. Where both answers are yes, you have the case Chen described: one compromised backend supplies the evidence and receives the money. If the requester writes the data but release needs an offline step, that step is the last check left. If the approver reads a record the requester cannot touch, such as the chain itself or a separate ledger, an attacker has to take over two systems before funds move. Independent data plus offline release is the slowest box and the hardest to rob.
I'd fix the paths where both answers are yes first. Pointing hot-wallet approvals at an independent record means an extra lookup, and a little more delay, on every withdrawal customers make.
What to watch
- Bitget's withdrawal plan, promised by 4:00 AM UTC on September 26, and whether it pays out from the bitcoin fund at that day's price.
- Whether Bitget publishes a post-incident account of how the attacker reached the wallet backend, showing whether the fix sits in the approval step or upstream of it.
- More freezes by blockchain foundations, which Chen said have already begun, with a 5% bounty on offer for anyone who voluntarily freezes attacker funds.