b biangogo.com
biangogo.com / layerzerolou-dong-an-li

LayerZero漏洞案例复盘:跨链消息中的真实风险与防御

复盘LayerZero生态中的典型漏洞案例,包括trustedRemote配置错误、adapterParams被截断、回调权限校验缺失等问题,并给出防御方案与上线前自检清单。

LayerZero漏洞案例 - LayerZero漏洞案例复盘:跨链消息中的真实风险与防御

极速体验

毫秒级响应,全球节点加速

🔒

资产安全

多重加密,冷热钱包分离

🌐

覆盖全球

180+ 国家与地区可用

📅 2026-05-24T06:12:21.526715+00:00 🔄 2026-05-24T14:44:05.449534+00:00

跨链协议的安全性永远是讨论的焦点。LayerZero 漏洞案例并不少见,绝大多数并非协议层缺陷,而是接入层的配置失误或逻辑漏洞。把这些案例拆开看,可以让自己的项目少走很多弯路。本文挑选三类典型问题展开复盘,结合 Binance 智能链与多条 L2 上的真实事故谈应对策略。

trustedRemote配置失误

第一类是 trustedRemote 配置错误。某项目在上线前匆忙部署,把 setTrustedRemote 的对端地址填成了 EOA 而非合约。攻击者只需控制该 EOA 就能向应用合约发送任意 payload。虽然资金没被直接窃取,但项目方被迫紧急暂停服务、重新部署。教训是:trustedRemote 必须经过双重确认,最好通过链下脚本读链上当前配置并与预期 hash 比对。建议把这一步纳入与 必安 链相关项目的标准部署流程。

adapterParams被截断或未校验

第二类问题与 adapterParams 有关。LayerZero 允许用户在 send 时附带 adapterParams,指定目标链 gas 上限与扩展行为。如果应用层未校验该参数,攻击者可以构造异常 adapterParams,导致目标链 lzReceive 消耗过多 gas 或者执行非预期分支。某项目就因此被刷出大量无效消息,目标链费用飙升。最佳实践是把允许的 adapterParams 范围写入 require 校验,超出即 revert。B安交易所 上几个新版接入合约已经采用这一模式。

回调权限缺失

第三类是 lzReceive 权限校验不严。lzReceive 必须只允许由本地 Endpoint 调用,并且 srcAddress 必须等于 trustedRemote[srcChainId]。某项目漏写了第二条检查,结果攻击者通过其他链上的恶意合约伪造 srcAddress 调用 lzReceive,直接调用应用的特权函数。修复方案是把这两条检查封装在 LzApp 基类的 modifier 中,所有继承类都不能绕过。BN官网 推广的安全模板也把这两条放在最显眼位置。