ether.fi 漏洞:15.45枚ETH不翼而飞

CN
1小时前

在再质押叙事被不断堆高的当下,ether.fi 这样的多合约、模块化协议,本应是“工程化安全”的受益者,却在一个看似普通的辅助组件上踩到了老问题。2026 年 9 月 11 日,安全机构慢雾面向公众发布警报,点名 ether.fi 生态中的 AtomicQueue 合约:其核心函数 solve() 对外部传入的 solver 参数几乎不设门槛,既不校验 solver 是否等于 msg.sender,也没有任何签名或授权验证,等于把“谁来执行这一步关键操作”的大门完全敞开。攻击者顺势利用这一缺陷,结合用户此前为正常交互而授予 AtomicQueue 或相关逻辑的代币授权(allowance),构造恶意请求,把受害者地址伪装成 solver,在后续回调执行中直接从受害者地址转走资产。据多条公开材料交叉信息,本次已确认损失约 15.45 枚 ETH,绝对金额并不惊人,更不像传统意义上“主资金池被洗劫一空”的灾难场景,但它精准击中了 DeFi 的共性软肋:一边是被长期忽视的访问控制,一边是用户几乎无感知、却持续生效的高额授权,两者一旦在某个边缘合约上叠加失守,小额损失就可能演变成体系性的安全隐患。

访问控制缺失:solve() 如何被人钻空子

在 AtomicQueue 的设计里,solve() 更像是一个“指挥中心”:外部调用者提交任务时,顺带给出一个 solver 参数,合约后续会围绕这个 solver 去触发回调、结算资产、完成整个队列流程。问题在于,据慢雾技术说明,这个至关重要的 solver 完全由外部传入,solve() 却既不校验 solver 是否等于 msg.sender,也没有任何签名、授权之类的附加认证逻辑。换句话说,只要你能调用 solve(),就能随意声明“谁是 solver”,合约会毫无怀疑地把后续逻辑当成真命令去执行。

攻击者正是从这个缝隙切入。部分技术分析指出,在 AtomicQueue 相关逻辑中,攻击者首先构造恶意请求,把毫不知情的受害者地址写进 solver 字段;随后,当 solve() 被执行时,合约按流程调用与 solver 相关的回调逻辑,在调用链里“接管”了受害者此前授予合约的代币授权额度,把本该受害者自己支配的资产一步步划转出去。整个过程中,加密算法没有失效,链底层共识也一切正常,真正出错的,是对 msg.sender、关键参数和角色权限缺乏最基本校验的业务合约,这种典型的访问控制缺失漏洞,在 DeFi 复杂合约组合、授权高度集中但权限边界模糊的场景下,仍然是最容易被人反复利用的一类安全软肋。

15枚ETH背后:是合约被黑还是授权被滥用

顺着资金路径往回追,会发现这 15.45 枚 ETH 不是从 ether.fi 的主资金池中被“挖走”,而是直接从用户地址被转出,关键在于这些地址事先已经向 AtomicQueue 或相关逻辑合约授予了代币授权。换句话说,合约本身并不实质托管这些资产,却拿到了“可在一定额度内代为划转”的钥匙,攻击者只是利用 solve() 访问控制缺失这一漏洞,绕到门后,把本属于用户的钱合法形式地“刷”了出去。因此,从现有材料看,攻击者并没有被指控攻破 ether.fi 的核心托管资产,而是借用用户早已交出去的那把钥匙,完成了最后一步转移。

也正因为资产在技术上仍处于用户地址名下,这起事件在叙事上落在一个暧昧地带:它既不是传统意义上“协议金库被黑”的单点失守,又不完全等同于用户主动签下一笔恶意交易。一些社区观点倾向于把它描述为对用户授权的滥用,但是否应该简单贴上“协议被黑”的标签,目前讨论仍未收束。更值得警惕的是,真正放大的不是这 15.45 枚 ETH 的绝对数额,而是长期、大额授权在 DeFi 合约组合中形成的隐藏杠杆——一旦某个环节的访问控制出现缺口,所有挂在这把钥匙上的余额,都会在瞬间变成可被利用的风险敞口。

再质押拼高收益,安全短板却在边缘合约

在叙事里,ether.fi 被包装成“让 ETH 再工作一次”的收益叠加机器:用户把原生 ETH 换成质押衍生品,再投入 ether.fi 这样的再质押协议中,试图在同一笔底层资产上叠加更多收益。为了支撑这套玩法,协议采用多合约、多模块的架构,从委托、队列,到奖励结算,都由不同组件各司其职。AtomicQueue 正是其中一块“螺丝钉”——它被设计成与任务或队列调度逻辑相关的合约组件,而不是托管最多资金的主资金池。

问题也就出在这里:再质押协议的攻击面并不只在最显眼的质押合约上,越是“非核心”的辅助模块,越容易在设计时放松访问控制等安全要求。本次事件恰恰发生在 AtomicQueue 这种队列/调度类组件上,攻击路径依赖的是用户此前授予合约的授权,而不是直接撬开 ether.fi 的主托管仓位。在“原生 ETH—质押衍生品—再质押代币”的多层结构中,用户往往只盯着最上层资产的价格波动,却很少意识到,中间每一层合约如果存在类似访问控制缺失的漏洞,就可能把整条收益链条变成一根脆弱的多米诺骨牌。

慢雾预警:一次典型的负责任披露案例

在链上资金已经出现异常转移后,慢雾开始围绕 ether.fi 生态中的 AtomicQueue 合约排查,最后把焦点锁定在 solve() 函数上:这个本应由特定执行者调用的入口,对外部传入的 solver 参数既不校验 solver 是否等于 msg.sender,也没有任何签名或授权验证。慢雾据此确认,这是一次典型的“访问控制缺失”问题,并意识到攻击者可以利用用户早先授予的授权完成资产转移。在对成因与影响范围形成基本判断后,慢雾先没有直接对外公布细节,而是按惯例私下联络 ether.fi 团队,说明潜在攻击路径并给出修复思路,把“先让开发者堵洞”放在“向市场爆料”之前。

直到 2026 年 9 月 11 日,慢雾才面向公众发布安全警报,明确将此次风险归类为访问控制类漏洞,点出 solver 参数缺乏校验这一根本原因,并梳理出攻击利用方式的关键环节。站在整个 DeFi 生态的角度,这种“先私下再公开”的负责任披露流程——发现问题、通知项目方、提供修复建议、在认为有必要时再披露——是在用户知情权与避免模仿攻击之间艰难求取平衡的机制。在智能合约一旦上链就难以随意改动的前提下,像慢雾这样的第三方安全团队,实质上已经成了协议层的早期雷达,它们越快识别并发出预警,风险暴露窗口就越短,这也是本次 ether.fi 事件里最值得被记住的一道隐形防线。

从这次小损失里,DeFi 该补的三门课

对开发者而言,这起仅造成约15.45枚 ETH 损失的 AtomicQueue 事件,暴露的是一个高度典型、却经常被忽视的基本功:访问控制必须与授权模型一体设计、一体审计。solve() 对 solver 参数既不校验 `solver == msg.sender`,也不做签名或其他授权验证,在用户早已给出长期代币授权的前提下,等于把“谁能动用这笔授权资产”的问题留给用户端自己兜底,这种将风险外包给前端提示和用户自觉的做法,在多合约、多模块架构里注定迟早被利用。对用户来说,这次攻击路径再次提醒:任何与任务调度、队列执行相关的合约,只要握有你的长期 allowance,就可能在你早已忘记交互的某个时刻,成为资产被转出的入口,减少无限额或长期大额授权、养成定期检查并收回不必要授权的习惯,已经是使用 DeFi 的必修课。更长远的观察点在于,这次事件强化了安全讨论从“主资金池有没有被盗”,转向“用户授权和合约权限是否被滥用”的趋势,接下来 ether.fi 及其他再质押协议是否系统排查类似访问控制与授权组合风险、审计机构是否提高此类漏洞权重,将决定这次看似“小损失”能否真正推动整个 DeFi 在权限设计上的进步。

加入我们的社区,一起来讨论,一起变得更强吧!
AiCoin专属Hyperliquid福利:https://app.hyperliquid.xyz/join/AICOIN88
AiCoin专属Aster福利:https://www.asterdex.com/zh-CN/referral/9C50e2
链上电报(Telegram)社群:https://t.me/AiCoinWhaleData
链上社区:https://www.aicoin.com/link/chat?cid=N6OVMor5g
AiCoin链上推特:https://x.com/aicoinwhaledata

免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。

分享至:
APP下载

X

Telegram

Facebook

Reddit

复制链接