Cetus被盗2.3亿美元,解析攻击手法及资金转移情况

sui官方发文表示,支持cetus protocol在追回被盗资金方面的努力,鼓励有相关信息的用户提供线索,我们的优先事项仍然是保护社区和支持积极解决被盗事件。此前消息,sui生态流动性平台cetus在inca digital的支持和sui基金会的资金支持下悬赏500万美元寻求黑客相关线索。

那么,Cetus如何被盗的?攻击方式是什么样子的?又是如何转移资金的?下面就和小编一起看看吧!

背景

5 月 22 日,据社区消息,SUI 生态上的流动性提供商 Cetus 疑似遭攻击,流动性池深度大幅下降,Cetus 上多个代币交易对出现下跌,预计损失金额超过 2.3 亿美元。随后,Cetus 发布公告称:“我们协议中检测到了一起事件,安全起见,智能合约已暂时暂停。目前,团队正在对该事件展开调查。我们很快会发布进一步的调查声明。”

事件发生后,慢雾安全团队第一时间介入分析,并发布安全提醒。以下是对攻击手法及资金转移情况的详细解析。

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

(https://x.com/CetusProtocol/status/1925515662346404024)

相关信息

其中一笔攻击交易:

https://suiscan.xyz/mainnet/tx/DVMG3B2kocLEnVMDuQzTYRgjwuuFSfciawPvXXheB3x

攻击者地址:

0xe28b50cef1d633ea43d3296a3f6b67ff0312a5f1a99f0af753c85b8b5de8ff06

被攻击的池子地址:

0x871d8a227114f375170f149f7e9d45be822dd003eba225e83c05ac80828596bc

涉及代币:

haSUI / SUI

攻击分析

此次事件的核心是攻击者通过精心构造参数,使溢出发生但又能绕过检测,最终用极小的 Token 金额即可换取巨额流动性资产,以下为具体步骤解析:

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

1.攻击者首先通过闪电贷借出了10,024,321.28 个 haSUI,导致池子价格从18,956,530,795,606,879,104暴跌至18,425,720,184762886,价格下跌幅度达到99.90%。

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

2.攻击者精心选择了一个极窄的价格区间开立流动性头寸:

Tick 下限:300000(价格:60,257,519,765,924,248,467,716,150)Tick 上限:300200 (价格:60,863,087,478,126,617,965,993,239)价格区间宽度:仅1.00496621%

3.接着就是此次攻击的核心,攻击者声明要添加10,365,647,984,364,446,732,462,244,378,333,008单位的巨大流动性,但由于存在漏洞,系统只收取了1 个代币 A。

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

我们来分析一下攻击者为什么能够用1 个 Token 兑换出巨额流动性。其核心原因在于get_delta_a函数中的checked_shlw存在溢出检测绕过漏洞。攻击者正是利用了这一点,使得系统在计算实际需要添加多少haSUI 时出现了严重偏差。由于溢出未被检测,系统误判了所需 haSUI 的数量,导致攻击者仅需极少的 Token,就能兑换出大量的流动性资产,从而实现了攻击。

当系统计算添加如此巨大流动性需要多少haSUI 时:

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

这里的关键在于checked_shlw函数的实现存在严重缺陷。实际上,任何小于0xffffffffffffffff

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

错误掩码:0xffffffffffffffff 几乎所有输入都小于这个掩码,绕过溢出检测真正的问题:当n >= 2^192时,n

攻击者构造的中间值liquidity * sqrt_price_diff =6277101735386680763835789423207666908085499738337898853712:

小于错误掩码,绕过溢出检测但在左移64 位后会超出 u256 最大值,从而导致超出的部分被截断导致最终计算结果约小于1,但由于是向上取整,quotient算出来就等于1

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

4.最后攻击者移除流动性,获得巨额代币收益:

第一次移除:获得10,024,321.28 个 haSUI第二次移除:获得1个haSUI第三次移除:获得10,024,321.28 个 haSUI

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

5.攻击者归还闪电贷,净获利约10,024,321.28个haSUI 和5,765,124.79 个SUI,攻击完成。

项目方修复情况

攻击发生后,Cetus 发布了修复补丁。具体修复代码可参考:https://github.com/CetusProtocol/integer-mate/pull/7/files#diff-c04eb6ebebbabb80342cd953bc63925e1c1cdc7ae1fb572f4aad240288a69409。

修复后的checked_shlw函数如下:

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

修复说明:

将错误的掩码0xffffffffffffffff 将判断条件从n > mask修正为n >= mask确保当左移64 位可能导致溢出时,能正确检测并返回溢出标志

MistTrack 分析

据分析,攻击者0xe28b50cef1d633ea43d3296a3f6b67ff0312a5f1a99f0af753c85b8b5de8ff06 获利约 2.3 亿美元,包括 SUI、vSUI、USDC 等多种资产。

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

我们发现攻击者在两天前就准备好了Gas Fee,然后在攻击之前进行了一次尝试,但失败了:

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

获利后,攻击者将部分资金如

USDC、SOL、suiETH 通过跨链桥如 Sui Bridge、Circle、Wormhole、Mayan 跨链到 EVM 地址 0x89012a55cd6b88e407c9d4ae9b3425f55924919b:

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

其中,5.2341 WBNB 跨链到了 BSC 地址 0x89012a55cd6b88e407c9d4ae9b3425f55924919b:

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

接着,攻击者将价值

1,000 万美元的资产存入 Suilend:

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

攻击者还将24,022,896 SUI 转入新地址 0xcd8962dad278d8b50fa0f9eb0186bfa4cbdecc6d59377214c88d0286a0ac9562,目前暂未转出:

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

幸运的是,据Cetus 称,在 SUI 基金会及其他生态系统成员合作下,目前已成功冻结了在 SUI 上的 1.62 亿美元的被盗资金。

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

(https://x.com/CetusProtocol/status/1925567348586815622)

接下来,我们使用链上反洗钱与追踪工具MistTrack 分析 EVM 上接收跨链资金的地址 0x89012a55cd6b88e407c9d4ae9b3425f55924919b。

该地址在BSC 上收到 5.2319 BNB,暂未转出:

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

该地址在Ethereum 上收到 3,000 个 USDT、4,088 万个 USDC、1,771 个 SOL 和 8,130.4 个 ETH。

其中,USDT、USDC 和 SOL 通过 CoW Swap、ParaSwap 等兑换为 ETH:

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

接着,该地址将20,000 ETH 转入地址 0x0251536bfcf144b88e1afa8fe60184ffdb4caf16,暂未转出:

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

目前该地址在Ethereum 上的余额为 3,244 ETH:

Cetus被盗2.3亿美元,解析攻击手法及资金转移情况 - 创想鸟

MistTrack 已将以上相关地址加入恶意地址库,同时,我们将对持续对地址余额进行监控。

总结

本次攻击展示了数学溢出漏洞的威力。攻击者通过精确计算选择特定参数,利用checked_shlw函数的缺陷,以1 个代币的成本获得价值数十亿的流动性。这是一次极其精密的数学攻击,慢雾安全团队建议开发人员在智能合约开发中严格验证所有数学函数的边界条件。

以上就是Cetus被盗2.3亿美元,解析攻击手法及资金转移情况的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1178912.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
什么是Allora Network?如何运作?背后的愿景介绍
上一篇 2025年12月7日 23:27:07
2025公认十大现货网站有哪些 好用的现货软件推荐
下一篇 2025年12月7日 23:27:15

相关推荐

  • composer require-dev和require有什么不同_Composer Require与Require-Dev区别解析

    require用于声明项目运行必需的依赖,如框架、数据库组件和第三方SDK,这些包会随项目部署到生产环境;2. require-dev用于声明仅在开发和测试阶段需要的工具,如PHPUnit、PHPStan、Faker等,不会默认部署到生产环境;3. 安装时composer install根据环境决定…

    2026年5月10日
    1000
  • 开源免费PHP工具 PHP开发效率提升利器

    推荐开源免费PHP开发工具以提升效率:VS Code、Sublime Text轻量高效,PhpStorm专业强大;调试用Xdebug、Kint、Ray;依赖管理选Composer;代码质量工具包括PHPStan、Psalm、PHP_CodeSniffer;数据库管理可用%ignore_a_1%MyA…

    2026年5月10日
    000
  • Golang JSON序列化:控制敏感字段暴露的最佳实践

    本教程探讨golang中如何高效控制结构体字段在json序列化时的可见性。当需要将包含敏感信息的结构体数组转换为json响应时,通过利用`encoding/json`包提供的结构体标签,特别是`json:”-“`,可以轻松实现对特定字段的忽略,从而避免敏感数据泄露,确保api…

    2026年5月10日
    000
  • 利用海象运算符简化条件赋值:Python教程与最佳实践

    本文旨在探讨Python中海象运算符(:=)在条件赋值场景下的应用。通过对比传统if/else语句与海象运算符,以及条件表达式,分析海象运算符在简化代码、提高可读性方面的优势与局限性。并通过具体示例,展示如何在列表推导式等场景下合理使用海象运算符,同时强调其潜在的复杂性及替代方案,帮助开发者更好地掌…

    2026年5月10日
    100
  • Debian syslog性能优化技巧有哪些

    提升Debian系统syslog (通常基于rsyslog)性能,关键在于精简配置和高效处理日志。以下策略能有效优化日志管理,提升系统整体性能: 精简配置,高效加载: 在rsyslog配置文件中,仅加载必要的输入、输出和解析模块。 使用全局指令设置日志级别和格式,避免不必要的处理。 自定义模板: 创…

    2026年5月10日
    000
  • 比特币新手教程 比特币交易平台有哪些

    比特币是一种去中心化的数字货币,基于区块链技术实现点对点交易,具有匿名性、有限发行和不可篡改等特点;新手可通过交易所购买,P2P交易获得比特币,常用平台包括Binance、OKX和Huobi;交易流程包括注册账户、实名认证、绑定支付方式、充值法币并下单购买,可选择市价单或限价单;比特币存储方式有交易…

    2026年5月10日
    000
  • c++中的SFINAE技术是什么_c++模板编程中的SFINAE原理与应用

    SFINAE 是“替换失败不是错误”的原则,指模板实例化时若参数替换导致错误,只要存在其他合法候选,编译器不报错而是继续重载决议。它用于条件启用模板、类型检测等场景,如通过 decltype 或 enable_if 控制函数重载,实现类型特征判断。尽管 C++20 引入 Concepts 简化了部分…

    2026年5月10日
    000
  • Go语言mgo查询构建:深入理解bson.M与日期范围查询的正确实践

    本文旨在解决go语言mgo库中构建复杂查询时,特别是涉及嵌套`bson.m`和日期范围筛选的常见错误。我们将深入剖析`bson.m`的类型特性,解释为何直接索引`interface{}`会导致“invalid operation”错误,并提供一种推荐的、结构清晰的代码重构方案,以确保查询条件能够正确…

    2026年5月10日
    100
  • 理解编程指令:当结果正确,但实现方式不符要求时

    本文探讨了在编程实践中,即使程序输出了正确的结果,但若其实现方式未能严格遵循既定指令,仍可能被视为“不正确”的问题。我们将通过具体示例,对比直接求和与累加求和两种实现策略,强调理解和遵守编程规范的重要性,以确保代码的健壮性、可维护性及符合项目要求。 在软件开发过程中,我们经常会遇到这样的情况:编写的…

    2026年5月10日
    000
  • Golang goroutine与channel调试技巧

    使用go run -race检测数据竞争,结合runtime.NumGoroutine监控协程数量,通过pprof分析阻塞调用栈,利用select超时避免永久阻塞,有效排查goroutine泄漏、死锁和数据竞争问题。 Go语言的goroutine和channel是并发编程的核心,但它们也带来了调试上…

    2026年5月10日
    000
  • 使用 Jupyter Notebook 进行探索性数据分析

    Jupyter Notebook通过单元格实现代码与Markdown结合,支持数据导入(pandas)、清洗(fillna)、探索(matplotlib/seaborn可视化)、统计分析(describe/corr)和特征工程,便于记录与分享分析过程。 Jupyter Notebook 是进行探索性…

    2026年5月10日
    000
  • 《魔兽世界》将于6月11日开启国服回归技术测试

    《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试《魔兽世界》将于6月11日开启国服回归技术测试

    《%ign%ignore_a_1%re_a_1%》官方宣布,将于6月11日开启国服回归技术测试,时间为7天,并称可以在6月内正式开服,玩家们可以访问官网下载战网客户端并预下载“巫妖王之怒”客户端,技术测试详情见下图。 WordAi WordAI是一个AI驱动的内容重写平台 53 查看详情 以上就是《…

    2026年5月10日 用户投稿
    200
  • 如何在HTML中插入表单元素_HTML表单控件与输入类型使用指南

    HTML表单通过标签构建,包含action和method属性定义数据提交目标与方式,常用input类型如text、password、email等适配不同输入需求,配合label、required、placeholder提升可用性,结合textarea、select、button等控件实现完整交互,是…

    2026年5月10日
    100
  • 网站标题关键词更新后,搜索引擎为何仍显示旧标题?

    网站标题更新后,搜索引擎为何显示旧标题? 网站SEO优化中,站长常修改网站标题关键词,期望搜索结果显示自定义标题。然而,即使更新标签、meta keywords、meta description和结构化数据中的name属性后,搜索结果仍显示旧标题,这令人费解。本文将对此进行解释。 问题:站长修改了网…

    2026年5月10日
    100
  • 创建指定大小并填充特定数据的Golang文件教程

    本文将介绍如何使用Golang创建一个指定大小的文件,并用特定数据填充它。我们将使用 `os` 包提供的函数来创建和截断文件,从而实现快速生成大文件的目的。示例代码展示了如何创建一个10MB的文件,并将其填充为全零数据。掌握这些方法,可以方便地在例如日志系统或磁盘队列等场景中,预先创建测试文件或初始…

    2026年5月10日
    000
  • Python命令怎样使用profile分析脚本性能 Python命令性能分析的基础教程

    使用Python的cProfile模块分析脚本性能最直接的方式是通过命令行执行python -m cProfile your_script.py,它会输出每个函数的调用次数、总耗时、累积耗时等关键指标,帮助定位性能瓶颈;为进一步分析,可将结果保存为文件python -m cProfile -o ou…

    2026年5月10日
    000
  • 如何插入查询结果数据_SQL插入Select查询结果方法

    如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法如何插入查询结果数据_SQL插入Select查询结果方法

    使用INSERT INTO…SELECT语句可高效插入数据,通过NOT EXISTS、LEFT JOIN、MERGE语句或唯一约束避免重复;表结构不一致时可通过别名、类型转换、默认值或计算字段处理;结合存储过程可提升可维护性,支持参数化与动态SQL。 将查询结果数据插入到另一个表中,可以…

    2026年5月10日 用户投稿
    300
  • 使用 WebCodecs VideoDecoder 实现精确逐帧回退

    本文档旨在解决在使用 WebCodecs VideoDecoder 进行视频解码时,实现精确逐帧回退的问题。通过比较帧的时间戳与目标帧的时间戳,可以避免渲染中间帧,从而提高用户体验。本文将提供详细的解决方案和示例代码,帮助开发者实现精确的视频帧控制。 在使用 WebCodecs VideoDecod…

    2026年5月10日
    000
  • Discord.py 交互按钮超时与持久化解决方案

    本教程旨在解决Discord.py中交互按钮在一段时间后出现“This Interaction Failed”错误的问题。我们将深入探讨视图(View)的超时机制,并提供通过正确设置timeout参数以及利用bot.add_view()方法实现按钮持久化的具体方案,确保您的机器人交互功能稳定可靠,即…

    2026年5月10日
    000
  • Debian Copilot的社区活跃度如何

    debian copilot是codeberg社区维护的ai助手,旨在为debian用户提供服务。尽管搜索结果中没有直接提供关于debian copilot社区支持活跃度的具体数据,但我们可以通过debian社区的整体活跃度和特点来推断其活跃性。 Debian社区的一般情况: Debian拥有详尽的…

    2026年5月10日
    000

发表回复

登录后才能评论
关注微信