Attacker Drains zkLink Nova Escrow to 0.001 ETH with Fake Batch Root
An attacker used a fake batch root to drain zkLink Nova's Ethereum escrow to about 0.001 ETH, taking roughly $786,000 in ETH and ERC-20 tokens.
AI SummaryAI
- Fake batch root drained zkLink Nova's Ethereum escrow to 0.001 ETH on October 28.
- Blockaid estimated about $786,000 in ETH and ERC-20 tokens drained, attack still ongoing.
- One October 28 transaction moved 22.43 ETH and 11 ERC-20 tokens to a single address.
- The largest lot was 245.74 pufETH, worth about $613,536.
Fake Batch Root on Ethereum
An attacker drained zkLink Nova's
Ethereum (ETH) escrow down to roughly 0.001 ETH on Wednesday, October 28, after injecting a forged batch root through a public relayer and finalizing withdrawals the bridge never approved. Security firm Blockaid raised the alarm on X at 10:24 p.m. Eastern time that night, about four hours after the largest single transfer, putting the take at about $786,000 in ETH and ERC-20 tokens at that point and describing the attack as still ongoing. The mechanism matters. A public relayer is an open service that submits transactions on a network's behalf, and here it carried the forged message onto Ethereum. zkLink Nova is a Layer 3 blockchain that pools assets from Ethereum's Layer 1 blockchain protocol and its connected Layer 2 networks, with balances credited through its canonical bridge while the deposited assets sit in contracts on their source chains. In bridge design, a batch root is the hash that verifies a set of cross-chain messages, here the withdrawals Nova had approved. The two contracts hit, the L1
Ethereum (ETH) escrow and the ERC-20 bridge, hold the pooled collateral behind those balances. zkLink's settlement design calls for proof checks and cross-chain consistency checks before a batch is finalized, and withdrawals proceed only once the batch root reaches connected chains, whether a rollup or a sidechain. Blockaid's account says the forged root was injected on Ethereum through a public relayer instead, skipping that sequence, and its running estimate stayed open while the exploit continued. On-chain data backs it: a new batch root appears in the same transaction as the ETH and token withdrawals, logged just ahead of them, a sequence anyone can check in the transaction logs on Etherscan.
Details from the on-chain record narrow the loss. The main drainage transaction fired at 6:21 p.m. Eastern time on October 28, a few hours before Blockaid's alert, and swept 22.43 ETH out of Nova's Ethereum escrow along with 11 ERC-20 tokens from its token bridge, sending everything to a single address. At Etherscan's displayed prices, those transfers add up to $778,625.84, a figure that covers only this one transaction and leaves the full total hard to pin down; the alert's running estimate allowed that the eventual figure could be higher. The largest lot was 245.74 pufETH, worth about $613,536, and it moved out alongside roughly 18,113 USDC and 3,361 USDT. Blockaid's thread named two addresses the attacker used and flagged the ERC-20 bridge as a second target for the same operation. After the sweep, the hacked
Ethereum (ETH) escrow held only about 0.001 ETH, yet at 10:29 p.m. Eastern time its pause flag was still unset, so it is unclear whether any other control stopped further withdrawals. Forged cross-chain messages have now hit several bridges in quick succession. Each case turned on a bridge accepting a message it had not verified. On October 17, a fake mint message created 10 million unauthorized CYS tokens through Cysic's cross-chain bridge; the attacker sold 7.2 million of them and moved about $727,000 to Ethereum before the project blacklisted the wallet. In July, roughly $7.54 million left the Verus Ethereum bridge, its second loss after $11.58 million was taken in May. Blockaid linked the two Verus incidents to the same contract and import route and traced the root cause to a gap of roughly ten lines of Solidity validation in the bridge's checkCCEValues function, the same class of error behind the 2022 Wormhole and Nomad attacks.
Pause Flag Left Unset
What the response has changed so far is modest. Blockaid's alert gave the market a public trace within hours of the final withdrawals, and the on-chain records let anyone verify the roughly $786,000 drained against an escrow balance of about 0.001 ETH. What it has not changed is zkLink's own posture: no post-mortem, no remediation plan and no confirmation of a paused escrow or bridge had appeared by Wednesday night. The unset pause flag means whether withdrawals are fully closed is answered only by the chain, not by an announcement. Holders of the protocol's ZKL token are waiting on the team's first official incident report to name the settlement check that let a fake root through, the step that decides what deposits routed through Nova still carry.
AI-generated, AI-reviewed, under COINOTAG editorial oversight.

