Notional Finance 因整数溢出漏洞损失173万美元以太坊(ETH)

攻击者利用整数溢出漏洞从Notional Finance托管合约盗取173万美元,兑成689枚ETH并经Tornado Cash转移。

AI 摘要AI
  • Notional Finance 托管合约因整数溢出损失约173万美元
  • 第二笔交易转出69,257枚DAI和1,658,524枚USDC
  • 被盗资金兑成约689枚ETH经Tornado Cash转移
  • 攻击者向区块构建者Titan支付0.07 ETH小费走私人通道
k7rq2fdm

整数溢出把债务变成零

周五凌晨,攻击者利用一个整数溢出漏洞,从以太坊(Ethereum)固定利率借贷协议Notional Finance的旧版托管合约中盗走约173万美元。这个漏洞的精妙之处在于:一笔规模惊人的虚构债务,经过一次裸露的uint128类型转换后,直接被记为零。要理解发生了什么,得回到协议的第一版设计——它把未来的现金流义务记录为一种叫fCash的代币,借款人在新增债务前,系统会做一次抵押品筛查,而这个筛查正是通过裸uint128转换把债务折算成ETH计价。追踪此事的研究人员发现,两笔铸币金额相加恰好等于2的128次方——这是该转换会压平为零的唯一数值。如果当时用的是带校验的转换,这个数字会被直接拒绝,而不是被悄悄截断;耐人寻味的是,同一个文件里的其他地方恰恰用了更安全的校验写法。溢出一旦得手,攻击者账户便显示为无债务状态。链上记录显示,铺垫交易于周四UTC时间晚上11:58上链,提款仅三分钟后就跟着执行——这个两步时序可在Etherscan上逐一核实。第二笔交易把69,257枚DAI和1,658,524枚USDC转出托管合约——这两种锚定美元的稳定币,是DeFi用户常用的生息型稳定币抵押品。攻击者还向区块构建者Titan支付了0.07 ETH的小费,让交易走私人通道绕开公开内存池,协议方因此完全没有任何反应窗口。这笔账算得很残酷:一段多年无人触碰的代码里,仅一次未加校验的类型转换,就足以把一个虚构数字变成七位数的赃款。而由于托管合约从未清理过残余余额,资金一直原封不动地躺在那里,直到周五这笔交易找上门来。

689枚ETH经Tornado Cash转移

被盗的DAI和USDC随后被兑换成约689枚ETH,并推入混币服务Tornado Cash——这类服务专门切断钱包之间的链路,其所在生态位与零知识隐私层相邻,后者正是Aztec Network等协议以合规方式追求的技术方向。安全公司PeckShield在攻击发生后不久转发了链上监控Specter的预警;目前链上数据显示,托管合约里只剩下约60,600美元的残留代币。更深一层的故事在于攻击目标本身。2025年11月Balancer漏洞波及Notional的保险库后,Notional已停运其第三版协议,但V1合约仍在线且合约内有资金,且从未有人去清理。这就留下了一本睡着但装着真金白银的账本——与6月攻击者抽干Raydium遗留Solana资金池的手法如出一辙。教训在层层叠加:经过独立审计的协议仍占加密货币黑客损失的大头,所以一份陈旧的审计报告在这里没有提供任何保护。这种规模的Tornado Cash存入通常会在几天内分散到数百个地址,追回希望渺茫。市场反应则冷淡到近乎无视:协议代币NOTE目前交投于0.0065美元附近,24小时上涨3.5%,市值约400,700美元——这一估值本身就说明了这个品牌背后还剩多少经济活动。截至发稿,Notional未发布任何声明,既没有确认的损失数字,也没有事后分析报告,被盗资金究竟属于用户、国库还是第三方仍未得到确认。对存款人而言,这次事件再次证明:闲置资金放在冷钱包里,比留在无人维护的合约中稳妥得多。 希望实时跟踪行情的读者,可在Gate查看现货与合约的实时价格。

悬而未决的资金归属问题

我们对一手证据的解读很直接。攻击者的提款记录在Etherscan账本上公开可查,约173万美元的流出金额链上可验证,根因也白纸黑字写在溢出算术里——一次裸uint128转换,静默抹掉了一个本应被校验转换拒绝的数值。修复路径同样清晰:全面改用带校验的算术,并在遗留合约酿成隐患之前完成清理。真正缺失的是团队自己的事后报告。在Notional发布报告之前,资金归属问题将继续悬置,而已变成ETH的赃款,也不太可能出现在任何合规的加密货币交易所上。

COINOTAG News Desk

COINOTAG News Desk

COINOTAG 的编辑与研究团队。

News Desk 运作方式
AI 辅助

本文由人工智能辅助生成、经 AI 审核,并在 COINOTAG 编辑监督 下发布。