事件背景
Lumi Finance 使用 ERC-4337 账户抽象(Sodium 智能账户)。漏洞出在 validateUserOp / _validateSignature 路径:
- 验证 UserOperation 时允许执行 带状态副作用 的逻辑(例如 ERC-20 approve);
- 攻击者可把自身地址作为 signer 参数传入;ECDSA.tryRecover 失败时 不 revert,反而走到攻击合约的 isValidSignature,使验证「通过」;
- 攻击者控制的 Paymaster / spender 在验证阶段批量拿到多个智能账户的 token allowance;
- 用户从未在 UI 上确认「转走资产」,只是账户校验逻辑被滥用 → 随后 transferFrom 抽干授权额度。
根因一句话:验证阶段必须无副作用(stateless validation),却被做成了可写授权的后门。
事件经过
- Blockaid 等监测到 Lumi 相关异常转出(约 7 月 13 日)。
- 攻击者构造恶意 UserOperation,在 validate 阶段对大量智能账户执行 Approve。
- 随即用拿到的 allowance 转出 USDC 等资产,合计约 26.4 万—27 万美元。
- SlowMist 公开技术根因;完整攻击者/受害者地址列表未在摘要中全部给出 → 不猜补。
- 修复方向:验证改无副作用、撤销风险授权、升级账户实现。
资金流向
- Blockaid 等监测到 Lumi 相关异常转出(约 7 月 13 日)。
- 随即用拿到的 allowance 转出 USDC 等资产,合计约 26.4 万—27 万美元。
金额口径
约26.4万—27万美元(媒体/SlowMist 多写约 27 万;原稿 26.4 万为并行口径)
证据边界
完整地址/Tx 不足时不猜补。
处置状态
约26.4万美元被盗;项目需把验证逻辑改为无状态副作用并撤销风险授权。