The zkLink Nova Bridge Exploit unfolded on March 12 when an attacker forged a batch root and tricked the bridge’s Ethereum contract into authorizing withdrawals that had no matching token burns on Layer 2. The breach drained approximately $800,000 from the bridge’s reserves, including ETH, stablecoins, and staking tokens.

How the Forgery Worked

The bridge bundles withdrawal requests into a single batch root, which the contract verifies against on-chain burn events. Normally, each withdrawal must correspond to a burn on Layer 2, ensuring that the total amount withdrawn never exceeds the amount locked. In this case, the attacker supplied a forged batch root that the contract accepted as valid. Because the root did not reflect any actual burns, the bridge released funds that had never been locked on L2. The attack bypassed the burn-to-withdraw check entirely, allowing the attacker to pull assets from the bridge’s reserve pool. The bridge’s logic did not verify that the batch root matched the on-chain burn records before authorizing the withdrawal.

Asset Impact

  • ETH: The bridge’s ETH reserve fell by roughly 0.5 ETH, a 5% drop in the pool.
  • Stablecoins: Multiple stablecoin balances were drained, totaling about 200,000 USDC.
  • Staking Tokens: Tokens earmarked for staking were withdrawn, reducing the pool’s staking capacity.

The total loss sits around $800,000, with estimates ranging from $786K to $805K.

Verification Steps for Users

  1. Check Burn Records: Before initiating a withdrawal, verify that the corresponding burn event exists on Layer 2.
  2. Cross-Reference Batch Roots: Ensure the batch root presented by the bridge matches the recorded burns.
  3. Monitor Bridge Reserves: Keep an eye on the reserve balances; sudden drops may indicate unauthorized withdrawals.

Broader Implications for L2 Bridges

This incident shows that bridges can be vulnerable if the off-chain batch root is not tightly coupled to on-chain burn events. A single forged root can unlock multiple asset types, magnifying the potential loss. Bridge operators should implement stricter validation of batch roots and enforce a one-to-one mapping between burns and withdrawals.

The team has acknowledged the breach and is working on a patch to enforce stricter burn-to-withdraw matching. Users are advised to withdraw only after confirming that the burn event has been recorded on Layer 2. The bridge’s audit trail will be updated to log each batch root and its associated burns, providing an immutable record for future verification.

For traders seeking a zero-logging asset exchange, consider a zero-logging asset exchange.

See also the Initia MoveVM Exploit Halts Network After $2.7M Theft for another example of a bridge-related theft.

Explore more on this topic