Incident · Verification flaw

BNB Chain BSC Token Hub incident, 2022-10-06

Updated

What happened to BNB Chain BSC Token Hub?

On 6 October 2022 an attacker forged Merkle proofs accepted by BNB Chain's BSC Token Hub and minted 2 million BNB (≈ $570M). Validators halted BNB Smart Chain to freeze most of it; about $100M was moved to other chains before the halt and not recovered.

Sources: BNB Chainbnb-chain on GitHubVerichainsDefiLlama

Key facts

Date (UTC)
Protocol
BSC Token Hub — the native bridge between BNB Beacon Chain and BNB Smart Chain
Reported loss
2M BNB minted (≈ $570M); BNB Chain says ≈ $100M was moved off-chain and not recovered BNB ChainVerichainsDefiLlama
Root cause
Verification flaw — a bug in the IAVL Merkle-proof verification used by the Token Hub precompile let the attacker forge proofs for two withdrawals of 1M BNB each Verichainsbnb-chain on GitHub
Chains
BNB Smart Chain, BNB Beacon Chain
Recovery
Partly recovered
Official post-mortem
BNB Chain: A Decentralized Response

Timeline

All dates and times in UTC.

  1. 2022-10-06 — Two forged proofs release 1M BNB each from the Token Hub to the attacker. Verichains
  2. 2022-10-06 — Attacker bridges part of the BNB out to other chains; BSC validators coordinate a halt. BNB Chain
  3. 2022-10-06 22:13 — Last block before the halt (#21,962,149). BscScan
  4. 2022-10-07 04:00 — Patched client v1.1.15 published (includes bsc PR #1121; hard fork at block 21,962,149). bnb-chain on GitHub
  5. 2022-10-07 05:31 — Chain resumes with block #21,962,150; the attacker's address is frozen. BscScan

Where did the funds go, and was anything recovered?

Validators halted BNB Smart Chain and upgraded, so most of the minted BNB stayed frozen in the attacker's BSC address and could not be moved. About $100M had already been bridged to other chains; partners froze part of it, but BNB Chain says roughly $100M remains unrecovered off-chain. BNB Chain states no user funds were affected — the loss was newly minted BNB (BNB Chain).

Which routes and bridges were affected?

The Beacon Chain → BNB Smart Chain transfer path was abused, and the whole BNB Smart Chain was halted for several hours while validators upgraded (BNB Chain). Every bridge that settles on BNB Smart Chain was effectively paused during the halt.

Why did it happen?

The Token Hub accepted cross-chain packages if they came with a valid IAVL Merkle proof that the package existed in the Beacon Chain's state. The proof verifier had a flaw in how it handled certain proof structures: the attacker could include an extra leaf whose hash was not properly accounted for, so a proof built around a fabricated package still produced the expected root (Verichains). With two such proofs, the attacker received 2M BNB that never existed on the Beacon Chain.

The response relied on centralisation: BSC's small validator set could coordinate a halt within hours and ship a patched client (GitHub PR #1121), which froze most of the funds. That containment would be impossible on a chain with a large, independent validator set — and it is exactly why critics questioned BNB Chain's decentralisation afterwards.

For bridge users, the important point is that a native "chain-to-chain" bridge is only as strong as its proof verifier. Light-client bridges are generally safer than multisigs, but a verifier bug turns them into an unlimited mint.

The amount the attacker could actually use was limited by liquidity, not by the bug: minting 2M BNB is easy, but turning it into other assets required moving it across bridges and lending markets, and the halt cut that off within hours.

What should users have done then, and what should they do now?

At the time

During the halt users could not move funds on BNB Smart Chain at all. The sensible step was to wait for the validator announcement, not to bridge BNB out through third-party bridges at unusual prices, and to treat BNB on other chains with caution until the minted supply was confirmed frozen.

Now

When you see a chain halt, pause bridging to and from that chain and check the bridge's status page. Bridges that hold liquidity on an affected chain can be paused by their operators; our route pages show when a bridge stops quoting a route.

Sources

5 independent publishers. Links checked on the date shown.

  1. BNB Chain: A Decentralized Response — BNB Chain · Official · checked
  2. bsc PR #1121 — fix for the IAVL proof verification — bnb-chain on GitHub · Official · checked
  3. Binance Bridge exploitation — preliminary analysis — Verichains · Security firm · checked
  4. DefiLlama Hacks — BNB Bridge, 2022-10-06 — DefiLlama · Database · checked
  5. bsc v1.1.15 release (hard fork at block 21962149) — bnb-chain on GitHub · Official · checked
  6. BNB Smart Chain block 21962149 — BscScan · Database · checked
  7. BNB Smart Chain block 21962150 — BscScan · Database · checked

How do I cite this page?

Burn, A. / upswap.io (2026). BNB Chain BSC Token Hub incident (2022-10-06). Updated 2026-10-24. https://upswap.io/incidents/bnb-bridge-2022#summary. CC BY 4.0. Accessed ____.

Stable anchors: #summary #facts #timeline #funds #affected #analysis #then #now #sources #cite