SlowMist|2026年10月31日 13:34
2026年10月29日,跨链协议 @zkLink_Official 遭到攻击,损失金额约为78.3万美元。SlowMist 安全团队分析了此次事件,并揭示了瞬态存储漏洞如何导致伪造批次根并造成未经授权的提现。
攻击流程:
1️⃣ 查询 totalBatchesExecuted 并选择下一个批次(116409)进行伪造。
2️⃣ 通过 SyncL2TxHashRelayer 执行真实的 Linea 声明,并将 finalizeMessageHash 写入瞬态存储。
3️⃣ 在第二次 claimMessage 调用中重用已失效的 finalizeMessageHash,触发攻击者控制的 EthereumGateway 调用。
4️⃣ 使用 EthereumGateway.sendMessage 调用 ZkLink.syncBatchRoot,伪造批次根并推进 totalBatchesExecuted 的值。
5️⃣ 针对伪造的根执行了 12 次提现:1 次 ETH 和 11 次 ERC-20 转账,均使用伪造的 Merkle 证明。
⚙️ 根本原因:
Arbitrator.claimMessage 允许中继器指定任意调用目标和调用数据,但未将 finalizeMessageHash 清除或绑定到当前调用。结合 ZkLink.syncBatchRoot 仅检查网关身份而不验证批量证明,这导致了批量根伪造。
建议:
在审查类似的跨链中继器项目时,请注意以下四个方面:
1️⃣ 每次调用前重置临时存储。
2️⃣ 将验证值绑定到当前调用。
3️⃣ 检查任意用户是否可以通过公共辅助合约或中继器间接利用受信任的调用者。
4️⃣ 独立验证批量根更新,而不是仅仅依赖调用者身份。
完整分析
https://slowmist.(medium.com)/one-fish-multiple-meals-analysis-of-the-780k-zklink-exploit-e07d06d4dbd5
分享至:
脈絡
熱門快訊
APP下載
X
Telegram
複製鏈接