Worked example · 2026-09
Bitget — no key was stolen; the approval process signed exactly what a compromised backend told it to — Bitget / hot and warm wallets / Ethereum, XRPL, Arbitrum, Avalanche, Optimism, BSC, Base — 2026-09-24
Explicitly not OAK-T10.001-style key theft. Bitget's CEO states no private keys were stolen and no signers were bribed; the signing layer operated normally on falsified inputs. Initial access, per SlowMist's preliminary findings (2026-09-30): the earliest malicious activity was 2026-08-31, when attackers exploited a zero-day in a third-party security product node to enter the service environment. In the early hours of 09-25 (UTC+8) they used compromised internal accounts to reach another security product's management platform, uploaded custom tools in batches, and used them to forge withdrawal parameters that triggered the transfers. OAK now assigns OAK-T15.004 (Operator Credential Compromise — preliminary) for the internal-account step; the zero-day product is unnamed and gets no Technique until it is. The third party in this chain is a security product on the path to the approval system, not a signing vendor; that bears on the T11.001 scope question below and in TAXONOMY-GAPS.
Summary
At 18:31 UTC on 2026-09-24 Bitget's monitoring flagged unauthorized transfers from hot and warm wallets. By the next day the exchange put the total at $351.6M across seven chains. The CEO's account: a critical wallet-backend system was compromised, used to spoof transfer data, and that data was fed into Bitget's own authorization and signing process, which approved and executed the payouts as if they were routine.
Cold storage was untouched. Withdrawals were paused; deposits and trading continued. Mandiant and SlowMist were engaged. The access vector, dwell time and the specific backend system have not been disclosed.
Timeline (UTC)
| When | Event | OAK ref |
|---|---|---|
| 2026-08-31 | Zero-day in a third-party security product node exploited; foothold in service environment (SlowMist, preliminary) | (entry vector) |
| 2026-09-24 late (09-25 early UTC+8) | Compromised internal accounts used on a second security product's management platform; tools uploaded; withdrawal parameters forged | T15.004 |
| 2026-09-24 ~18:31 | Monitoring flags unauthorized outflows from hot and warm wallets | T11.001 — spoofed data into honest approval path |
| 2026-09-24 | Outflows across ETH, XRPL, Arbitrum, Avalanche, Optimism, BSC, Base | (extraction) |
| 2026-09-25 | Bitget confirms $351.6M; states no keys stolen; withdrawals suspended; protection fund >$464M | (operator disclosure) |
| 2026-09-25 | CEO: method "highly consistent" with DPRK patterns; Mandiant and SlowMist engaged | (attribution claim — not established) |
What defenders observed
- The failure was upstream of the signer and the signer did its job. Every check that asks "was this signed by an authorised key through the approved process?" answers yes. The only check that fails is "does this payout correspond to something a customer asked for?" — and that check has to be performed against data the compromised backend did not produce.
- Seven chains from one intrusion is the co-location signal, relocated. T11.011's diagnostic — simultaneous outflows on unrelated chains — appears here without any key store being reached. The shared component was the pipeline that tells the signers what to sign.
- Hot/warm/cold tiering worked as designed and bounded the loss. It is also why the number is $351.6M rather than the exchange's balance sheet: the tier boundary is a blast-radius control, and it held.
Root-cause evidence
- Technique: OAK-T11.001
- Source: https://www.coindesk.com/markets/2026/09/25/bitget-s-usd351-million-hack-happened-via-spoofed-transfers-not-private-keys-ceo-gray-chen-says; https://www.techflowpost.com/en-US/newsletter/138358
- Source type: operator
- Confidence: confirmed
- Evidence: Bitget's CEO: a compromised wallet backend spoofed transaction data into Bitget's own authorisation process; no keys stolen. SlowMist's preliminary findings trace entry to a third-party security-product zero-day (2026-08-31) and forged withdrawal parameters. Final report outstanding.
Public references
[techflowslowmistbitget2026]— TechFlow, "SlowMist Releases Update on Bitget Incident Investigation: Malicious Activity Traced to Late August, Involves Third-Party Security Product" (2026-09-30): https://www.techflowpost.com/en-US/newsletter/138358[coindeskbitget2026]— CoinDesk, "Bitget's $352 million hack happened via spoofed transfers, not private keys, CEO Gracy Chen says" (2026-09-25): https://www.coindesk.com/markets/2026/09/25/bitget-s-usd351-million-hack-happened-via-spoofed-transfers-not-private-keys-ceo-gray-chen-says[thehackernewsbitget2026]— The Hacker News, "Bitget Says Suspected North Korean Hackers Stole $351.6M After Backend Compromise": https://thehackernews.com/2026/09/bitget-says-suspected-north-korean.html[bloombergbitget2026]— Bloomberg, "Crypto Theft by North Korea Tops $1 Billion in 2026 After Bitget Attack" (2026-09-25): https://www.bloomberg.com/news/articles/2026-09-25/bitget-hack-pushes-north-korean-crypto-haul-past-1-billion[cryptonomistbitget2026]— The Cryptonomist, "Bitget Security Breach Costs $387.5M, IPO Plans Intact" (source of the higher figure): https://en.cryptonomist.ch/2026/09/26/bitget-security-breach-loss/
Discussion
T11.001's title names a third-party vendor, and its anchors (Bybit via Safe{Wallet}, WazirX via Liminal, DMM via Ginco) fit it. Radiant already sits there under a "developer-laptop sub-vector," and Bitget now adds an in-house wallet-backend instance. The shared mechanism — intent substitution upstream of an honest signing layer — is what the Technique actually describes; the vendor relationship is incidental to it. Two anchors outside the title is the point at which the title should be revisited rather than stretched a third time. Recorded here so the next T11 review takes it up; no rename is made on an operator statement with the forensic report outstanding.
Revision trigger: the Mandiant / SlowMist findings. If they show key material was in fact reached, the primary mapping moves off T11.001.