点击蓝字
关注我们
攻击路径分析
参考交易地址:
https://suiscan.xyz/mainnet/tx/DVMG3B2kocLEnVMDuQzTYRgjwuuFSfciawPvXXheB3x
1.首先攻击者通过闪电贷借出了启动资金约1000万haSUI、并换取576万SUI
2.然后执行了一个看似无害的操作——仅添加0.000000001个haSUI的微量流动性
3.接着进行三次移除流动性操作,分别提取了1000万haSUI、测试提取了0.000000001haSUI和再次1000万haSUI
4.最终完成闪电贷还款并获得巨额收益。整个攻击流程在单一交易中完成,表面上符合闪电贷的技术要求。
攻击核心疑点
最大的争议在于严重的数量不匹配,攻击者仅投入了0.000000001haSUI的微量流动性,却能够两次提取完全相同的1000万haSUI,总计获得约为2000万haSUI的收益,这违背了基本的资产守恒定律。
技术实现
这种“用一分钱撬动2000万”的现象表明CLMM(集中流动性做市商)协议在处理数值时存在严重的计算缺陷,攻击者利用这个漏洞实现了资产的“零成本铸造”,绕过了正常的市场交易机制,直接从协议内部提取了本不属于他的资金。
关键点漏洞是什么?
根据流动性参数可以发现,理应增加的巨额流动性
10365647984364446732462244378333008
但实际上,流动性增加了0.000000001
根据增加流动性的日志记录发现,after_liquidity(用户持有的流动性)为10365647984364446732462244378333008
但是支付的流动性amount_a的数量为1
这明显是不成比例的。协议将“1”单位的资产映射为巨额流动份额。这说明在乘法操作中发生了精度错误或溢出错误,导致最终生成了远远超出应有的数值。
漏洞关键
关键乘法公式(流动性数量×价格差平方根)
攻击者构造了精心准备参数:
price(300200): 60863087478126617965993239 (上限价格)
price(300000): 60257519765924248467716150 (下限价格)
真实差值: 605567712202369498277089 (价格区间宽度)
解释:这是一个很小的价格区间,差值只有6000多亿,看起来"人畜无害"
在进行CLMM集中流动性计算时,当前市场价格低于黑客设置的价格区间(300000-320000),此处该区间只有代币haSUI,没有代币SUI,黑客发现使用这个乘法公式进行数值结果检查时,检查不规范,可以导致溢出。
乘积结果:
这个超大数值是整个攻击的“燃料”,但关键点在于它骗过了系统的安全检查逻辑:
错误的合法性检查逻辑:
检查条件:
乘积结果< (0xffffffffffffffff << 192)
结果:True (通过检查)
溢出判断:False (不会溢出)
攻击者构造的这个乘积刚好小于安全门槛,被误判为“合法”,接着被左移64位,即相当于乘以2^64。
后果:数值溢出
这个值超过了u256的最大值,导致后续逻辑中的除法计算失真,分母永远大于分子。
这就是在Cetus这次攻击中,攻击者能够零成本铸造资产,不依赖合约漏洞,而是通过边界数值计算错误+判断条件不严谨,将“合法操作”变成了“非法提款”。
最后想说
黑客构造极为精准的数字,用0.000000001代币撬动偷走2.6亿,Cetus被精心设计的计算偏差坑惨了!
想知道怎么保护你的数字钱包?请关注我们,如你担心钱包是否不安全,我们可以帮你检查是否安全;资金被盗?我们将有专业人员为你链上资金追踪,联系我们,专业提供安全服务。
如果你担心钱包安全
可以关注我们公众号

进行免费的安全检测
监测潜在风险,防止资产被盗
我们提供以下专业服务:
钱包安全体检:检测你的钱包是否存在授权风险。
加密资产追踪:已经被盗,可提供链上分析报告,帮你追踪资产流向。
防骗法律咨询:遭遇诈骗,可联系我们获得专业建议。

