作者:蓝狐;来源:X,@lanhubiji
这次kelp被攻击的核心是:攻击者通过伪造跨链消息,让 LayerZero OFT 桥在主网直接释放了 11.65 万枚真实 rsETH(无对应源链销毁),然后把这些“空壳” rsETH 存入 Aave 等协议当作抵押品,借出了约 2.36 亿美元真实 WETH/ETH。
核心漏洞不在 Aave,而在 Kelp DAO 的 LayerZero 跨链桥配置上。
Kelp 的 rsETH 跨链用的是 LayerZero V2 的 OFT(Omnichain Fungible Token)标准:
在以太坊主网,OFTAdapter 合约锁仓 rsETH,作为多条L2 上 wrapped rsETH 的最终储备(像银行金库)。
在L2上,标准 OFT 合约,跨链时走“debit(销毁/扣减)→ 消息 → credit(铸造/释放)”的 1:1 机制。
如果是正常的跨链,那么流程会是:
L2用户烧毁rsETH → LayerZero 发送消息 → 主网 OFTAdapter 收到后释放 rsETH。
而攻击者只做了一件事:
在以太坊主网直接调用 LayerZero EndpointV2 合约的 lzReceive 函数(交易哈希已公开:0x1ae232da…)。
同时,塞入一个伪造的跨链消息包(origin packet),声称消息来自一个合法源链。
EndpointV2 验证通过后,把消息传递给 Kelp 的 rsETH OFTAdapter。
OFTAdapter 收到后,直接从主网储备金库释放11.65 万枚 rsETH 给攻击者地址。
这样一来,没有源链的 burn/debit 记录,但在主网完成了 credit/release。
omnichain 供应量守恒被打破,主网金库被抽空,所有 L2 上的 rsETH 同时变成“废纸”。
一个交易完成整个攻击。
后续两次追加攻击(各 4 万枚)没有成功,因为Kelp 紧急暂停。
那么问题来了,Layerzero跨链桥为什么会“认”这个假消息?
不是 LayerZero 协议本身有 bug,主要是Kelp 的 OApp(应用层)安全配置太弱导致。
LayerZero V2 上支持开发者自定义验证强度,使用 DVN(分布式验证器网络)来确认消息。
Kelp 只配置了 1-of-1 DVN(只需单个验证器签名即可通过),这是最弱安全档位。
早在2025 年 1 月,Aave 治理论坛有提醒:Kelp 要把 DVN 扩展到多签(至少 2-of-2 或以上),而15 个月过去了,一直没改,依然选择了“速度优先”的最弱配置。
而这个单点,成为本次黑客事件的核心攻击点:单个 DVN 被攻破、签名被伪造,或直接构造了通过验证的 packet。
而EndpointV2 一旦收到“验证通过”的消息,就直接调用目标合约的 lzReceive,OFTAdapter 完全信任 Endpoint 传来的 packet,没有额外二次校验。
如果不是追求速度优先,而是同时均衡考虑安全,那么,或许这次攻击不会成功。
也就是说,Kelp 把“跨链消息合法性”完全押在了单个 DVN 上。
最后rsETH能很快借到真ETH,原因是rsETH 在 Aave 等协议里是白名单抵押品。
攻击者在 Kelp 暂停前 46 分钟内,把假 rsETH 存进去借出真 WETH。
当Kelp 冻结桥和代币时,坏账已经在 Aave 形成了(Aave 冻结 rsETH 市场、启动 Umbrella 安全模块处理)。
总结来说,
这次伪造的核心是“单 DVN 配置 + 直接调用 lzReceive 塞假 packet”。
单点验证风险,加上了defi可组合性,结果形成了这次超大规模的黑客事件。
单点验证是脆弱的,速度重要,但安全更重要。
声明:本文由入驻金色财经的作者撰写,观点仅代表作者本人,绝不代表金色财经赞同其观点或证实其描述。
提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。
牛弹琴
蓝狐笔记
GoMoon
腾讯科技
