BNB Chain Token Hub IAVL Proof Forgery (Oct 7, 2022)

On October 6-7, 2022, an attacker exploited a verification flaw in the IAVL+ Merkle proof library used by the BSC Token Hub - the native cross-chain bridge between Binance Beacon Chain (the BNB governance chain) and BNB Smart Chain (the EVM execution chain) - to forge a proof of a deposit that had never occurred on the Beacon Chain side, then to convince the BSC-side precompile contract to mint two million BNB into attacker-controlled addresses on BNB Smart Chain. The total notional value of the minted BNB at the moment of the exploit was approximately $568M; if the attacker had been able to successfully bridge or sell the entire haul, this would have been the second-largest cross-chain-bridge theft in history after Ronin. The attacker did not get the chance. After approximately $130M had been moved across the cross-chain bridge to other networks via Anyswap, Stargate, Celer, and various aggregators, BNB Chain validators - then a set of 44 validators with 26 active and a relatively low coordination overhead - executed an emergency consensus pause and halted block production at block 21,955,968. The remaining roughly $430M of stolen funds were stranded on BNB Smart Chain in attacker addresses, frozen by validator-level address blacklisting that was subsequently formalized into the chain's protocol. No customer-facing Binance product was directly compromised; the loss was absorbed by BNB Chain validators and, indirectly, by Binance which underwrote the recovery and reform.

Timeline of events

The first malicious cross-chain message was processed at approximately 18:26 UTC on October 6, 2022, when the attacker submitted a forged IAVL inclusion proof to the BSC Token Hub precompile at address 0x0000000000000000000000000000000000001004. The precompile verified the proof against the stored Beacon Chain header, accepted it as valid, and minted one million BNB into the attacker's first staging address on BNB Smart Chain. A second forged proof followed minutes later, minting an additional one million BNB. By 19:30 UTC the attacker had begun routing the minted BNB into liquidity pools on Venus Protocol, where they used the BNB as collateral to borrow stablecoins, and into the Anyswap and Stargate cross-chain bridges to move value to Ethereum, Avalanche, Arbitrum, Polygon, Optimism, and Fantom. At approximately 21:00 UTC, on-chain monitoring services and the Binance security team independently flagged the anomalous mint, and Binance founder Changpeng Zhao publicly tweeted at 21:19 UTC asking validators to suspend the chain. Validators coordinated over Telegram and a private Discord; at 22:51 UTC, validators stopped producing blocks at height 21,955,968, freezing all on-chain state. A patched binary that disabled the BSC Token Hub precompile and added a hardcoded blacklist of attacker addresses was distributed to validators within twelve hours; block production resumed on October 7 at approximately 09:40 UTC after validators upgraded. The pause lasted approximately ten hours, the first time a major EVM chain had executed a coordinated consensus halt in response to an active exploit. SlowMist published a preliminary post-mortem within twenty-four hours; samczsun and the Trail of Bits team contributed independent verification of the proof-forgery mechanism over the following days.

Attack mechanism

The BSC Token Hub bridged value between Beacon Chain and BNB Smart Chain by relying on light-client verification of cross-chain messages. A user wishing to move BNB from the Beacon Chain to BSC would lock BNB on the Beacon Chain, and a relayer would later submit to the BSC precompile a Merkle inclusion proof showing that the lock event was committed in a Beacon Chain block that the BSC chain knew about via its stored block headers. The precompile verified the proof and, if valid, minted equivalent BNB on BSC. The Beacon Chain used the IAVL+ tree, a versioned AVL Merkle tree designed by Tendermint, and the proof verification logic in the BSC precompile was implemented in Go and ported into the BNB Smart Chain client. The flaw lay in the proof-format handling. IAVL+ proofs consist of a series of inner-node and leaf-node proof steps, each of which contributes to the reconstruction of the root hash. The verifier was supposed to check that every step of the supplied proof contributed to the final root computation, but the implementation accepted proofs in which trailing path steps were not actually used in the hash computation - they were syntactically present but logically dead. An attacker who could provide a valid prefix that hashed to the expected root could append arbitrary trailing data, and the verifier would accept the proof as long as the prefix's reconstructed root matched. Crucially, the attacker did not need to locate a real Beacon Chain transaction at all; they only needed a valid prefix that the verifier would compute correctly. By selecting a known valid historical block and a known leaf, then appending forged trailing steps that encoded a fabricated mint instruction targeting their own address, the attacker constructed a proof object that the verifier hashed correctly and accepted. The mint instruction was then executed by the precompile against attacker-supplied parameters. The flaw was in the verifier's loop termination, not in the cryptographic primitives; the SHA-256 hashes were all correct, but the wrong bytes were being hashed.

Root cause analysis

The root cause was a logic bug in the IAVL+ proof verifier inherited from the cosmos/iavl Go library and embedded in the BSC Token Hub precompile. The library's RangeProof and InclusionProof verification routines did not strictly require that every supplied path step participate in the reconstruction of the root, allowing an attacker to forge proofs by supplying a valid hash-prefix and arbitrary trailing data that the verifier failed to reject. The bug had been latent in cosmos/iavl since at least the early Tendermint releases of 2017 and had been observed in academic security analysis as a possible weakness, but it had never been exploited in practice because the IAVL+ tree was rarely used on the verifying side of a cross-chain bridge with mint authority. The BSC Token Hub was an unusual deployment in this respect: most Cosmos-ecosystem bridges that rely on IAVL+ proofs verify them in cosmos-sdk modules where the IAVL+ tree itself is the source of truth, so a forged proof simply fails downstream. In the BSC case, the proof verification was decoupled from any cross-chain state synchronization that might have caught the inconsistency, and the precompile granted unconditional mint authority on a successful verification. Two distinct failures compounded: the cryptographic-library flaw, and the architectural decision to place the precompile on a privileged path with mint authority bounded only by the proof verifier. A defense-in-depth design - rate-limiting the bridge, requiring multi-relayer attestation, or imposing a sanity check on the supply delta against expected Beacon Chain locks - would have caught the exploit even with the verifier flaw intact. None of these controls were in place. The bridge had been audited, but the IAVL+ verification logic was treated as a trusted dependency rather than as a code path requiring exhaustive adversarial testing.

Initial response and recovery

The most consequential response was the validator-coordinated chain pause, which converted what would have been a $568M loss into a partial $130M loss recovered against a $430M unspent residual. With only twenty-six active validators (44 in total) needed to coordinate a halt of block production, the BNB Chain consensus model permitted a coordination decision that would have been operationally impossible on Ethereum or Bitcoin. The pause was executed within approximately three hours of the first malicious mint, during which time the attacker had moved approximately $130M off-chain via Anyswap (now Multichain), Stargate, Celer, and various aggregators. The remaining stolen BNB - approximately two million BNB minus the off-bridged portion - sat in known attacker addresses on BNB Smart Chain when block production stopped. During the upgrade window, BNB Chain core developers prepared a patched client that included an explicit blacklist of the attacker's addresses, an emergency disabling of the BSC Token Hub precompile, and an upgrade to the IAVL+ verification logic to require strict consumption of all proof path steps. Block production resumed approximately ten hours after the halt with the patched binary in place, and the remaining attacker funds were rendered permanently non-transferable. Of the $130M that escaped, Tether froze approximately $7M of USDT, Circle froze a small USDC quantity, and centralized exchanges blacklisted attacker-linked addresses. Final recovery against the $130M off-chain portion is estimated at $20-30M, leaving the attacker with a net haul on the order of $100M; recovery against the on-chain frozen portion is effectively complete in the sense that the funds are unspendable, though they remain technically attributed to attacker addresses.

Funds tracking and laundering

The off-bridged $130M moved primarily to Ethereum and Avalanche via Stargate (LayerZero-based), with secondary flows through Anyswap to Polygon and Fantom. SlowMist's investigation team and PeckShield published wallet-tracking dashboards within forty-eight hours, identifying approximately twenty primary destination addresses across six chains. The attacker did not use Tornado Cash, which had been OFAC-sanctioned two months earlier in August 2022; instead the laundering pattern relied on cross-chain hops, deposits into less-regulated centralized exchanges in jurisdictions outside U.S. enforcement reach, and on-chain DeFi activity intended to obscure trail. Notably, a portion of the proceeds was used to deposit collateral into Venus Protocol and borrow stablecoins, a pattern that further muddied the funds-tracing because the borrowed stablecoins were then bridged separately. Chainalysis and Elliptic both published attributions but neither identified a known threat-actor cluster; the wallet pattern did not match Lazarus, did not match the Russian-language groups responsible for several 2022 exploits, and did not match any of the Eastern European or Chinese-language clusters then active. The attacker's behavior - rapid bridge usage, accumulation in DeFi, no apparent attempt to ransom or negotiate - suggested an individual operator rather than a coordinated criminal enterprise. As of Q2 2026, no public attribution to any named individual or group has been made. ZachXBT's investigations did not produce a credible identification, and Chainalysis's annual crypto-crime report continues to list the BNB Chain Bridge attacker as unidentified.

Legal and regulatory aftermath

The exploit prompted regulatory scrutiny of cross-chain bridge security and validator-controlled chain pauses, but it did not produce direct enforcement action against any party. Binance, which underwrote the recovery operation and effectively absorbed the residual loss, faced no regulatory penalty in connection with the exploit itself, though the broader U.S. Department of Justice and SEC actions against Binance in 2023 - which culminated in a $4.3B settlement and CZ's plea agreement - were unrelated to the bridge incident. The chain-pause mechanism itself drew regulatory commentary: U.S. and EU regulators noted that the ability of a small validator set to coordinate a halt represented a centralization vector that conflicted with regulatory framings of permissionless blockchains as decentralized infrastructure. BNB Chain core developers responded by publishing a formal incident response framework that codified validator coordination procedures, blacklisting governance, and the conditions under which a chain pause would be authorized; this framework was later cited by Polygon and other PoS chains as a reference template. The IAVL+ library bug was patched upstream in the cosmos/iavl repository within two weeks, and the patch was back-ported into all known dependent projects. A follow-on review by the Cosmos Hub team confirmed that no other major IAVL+ proof verifier was deployed in a configuration where the bug could be exploited. No criminal charges were filed in any jurisdiction; the attacker remains at large and no further movements of the residual frozen funds have been observed.

Industry implications

The BNB Chain Bridge incident reframed three areas of cross-chain bridge security thinking. First, it demonstrated that cryptographic library flaws, not just smart-contract logic flaws, are a viable attack surface for billion-dollar exploits, and that proof-verification code paths inherited from upstream open-source libraries deserve the same audit rigor as the chain-specific contract code. The IAVL+ flaw had been cosmetically present in cosmos/iavl for five years before exploitation; this is now treated as a cautionary case study in supply-chain security for cryptographic primitives. Second, it crystallized the trade-off between censorship resistance and incident response: a chain that can pause is a chain that can recover, but it is also a chain whose operators can be coerced. The BNB Chain pause was widely regarded as having saved approximately $430M, but it also surfaced uncomfortable questions about whose authority validators were exercising and on what mandate. Third, it motivated a wave of bridge architecture reform across the industry. Many major bridges - LayerZero, Wormhole, Axelar, Hyperlane - moved toward multi-validator attestation models, rate limits, supply-delta sanity checks, and circuit breakers that would arrest anomalous flows even if the underlying verification logic failed. Stargate, which had processed approximately $50M of the stolen funds, accelerated its own circuit-breaker rollout. The overall industry posture shifted from confidence in single-verifier bridges to skepticism, and bridge TVL distribution flattened across multiple architecturally distinct providers. As of 2026, no major bridge relies on a single light-client proof verifier with unconditional mint authority; the BSC Token Hub model is treated as architecturally deprecated.

Verdict and lessons

The BNB Chain Bridge exploit is the canonical example of a cross-chain bridge whose technical architecture and operational posture were so misaligned that a single library flaw produced a $568M notional loss, partially offset only by a coordinated validator pause that itself raised durable governance concerns. The cryptographic flaw was real and exploitable, but it would have been blocked by any of three independent defense-in-depth controls - rate limits, multi-relayer attestation, or supply-delta sanity checks - none of which were in place. The technical lesson is that proof-verification libraries are part of the trust boundary of any bridge that relies on them, and that bridges with unconditional mint authority should layer multiple independent controls rather than relying on a single verifier path. The operational lesson is that fast incident response on a chain with a small, coordinated validator set is materially more powerful than the post-Ronin industry assumption that bridge losses are categorically unrecoverable; BNB Chain demonstrated that a coordinated pause within hours of an exploit can convert a total loss into a partial one. The governance lesson is that the same coordination capability is also a centralization vector that must be governed transparently. The cumulative effect on bridge architecture has been salutary: rate limits, circuit breakers, and multi-attestor designs are now standard, and the BSC Token Hub itself was re-engineered into a fundamentally different architecture before re-enabling. The frozen residual remains on-chain, a permanent record of a single individual's nine-figure exploit and the largest validator-coordinated recovery in EVM history.

Root cause

A logic flaw in the cosmos/iavl IAVL+ Merkle proof verifier permitted the attacker to construct cross-chain inclusion proofs in which trailing path steps did not participate in the root hash reconstruction, allowing forgery of arbitrary mint instructions against the BSC Token Hub precompile. The precompile granted unconditional mint authority on a successful verification, with no rate limits, multi-relayer attestation, or supply-delta sanity checks to provide defense in depth.

Recovery and aftermath

Approximately $430M frozen on-chain via validator-level address blacklisting and unspendable as of 2026; approximately $130M moved off-chain via cross-chain bridges, of which $20-30M was subsequently frozen by stablecoin issuers and exchanges. Net unrecoverable loss approximately $100M. No customer-facing loss; Binance absorbed residual exposure.

Lessons

Precedent

Established that validator-coordinated chain pauses are a viable incident-response tool for small-validator-set chains, recovering approximately 76% of an active exploit before completion. Simultaneously surfaced governance concerns about the same coordination capability. Motivated industry-wide adoption of bridge rate limits, supply-delta sanity checks, multi-attestor verification, and circuit breakers.

Frequently asked questions

How much was stolen in the BNB Chain hack?

$568 million worth of BNB was minted in the exploit; about $430 million was frozen on-chain by validators.

What caused the BNB Chain exploit?

A logic flaw in the IAVL+ Merkle proof verifier allowed the attacker to forge cross-chain inclusion proofs and mint BNB without collateral.

Did BNB Chain recover the stolen funds?

Approximately $430 million was frozen on-chain, but about $130 million was moved off-chain; net unrecoverable loss is around $100 million. No customer funds were lost.

When did the BNB Chain hack happen?

On October 7, 2022.