BTCC / BTCC Square / TheBlockbeats /
慢霧:Cetus被盜事件分析,1枚代幣撬動2.3億美金

慢霧:Cetus被盜事件分析,1枚代幣撬動2.3億美金

TheBlockbeats
發佈時間:
2025-05-26 16:00:14
0
原文標題:《慢霧:Cetus 被盜 2.3 億美元事件分析》原文作者:Victory、Lisa,慢霧科技


背景


5 月 22 日,據社區消息,SUI 生態上的流動性提供商 Cetus 疑似遭攻擊,流動性池深度大幅下降,Cetus 上多個代幣交易對出現下跌,預計損失金額超過 2.3 億美元。 隨後,Cetus 發佈公告稱:「我們協議中檢測到了一起事件,安全起見,智能合約已暫時暫停。目前,團隊正在對該事件展開調查。我們很快會發布進一步的調查聲明。」


事件發生後,慢霧安全團隊第一時間介入分析,並發布安全提醒。 以下是對攻擊手法及資金轉移情況的詳細解析。


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


相關信息


其中一筆攻擊交易:https://suiscan.xyz/mainnet/tx/DVMG3B2kocLEnVMDuQzTYRgjwuuFSfciawPvXXheB3x


攻擊者地址:0xe28b50cef1d633ea43d3296a3f6b67ff0312a5f1a99f0af753c85b8b5de8ff06


被攻擊的池子地址:0x871d8a227114f375170f149f7e9d45be822dd003eba225e83c05ac80828596bc


涉及代幣:haSUI / SUI


攻擊分析


此次事件的核心是攻擊者通過精心構造參數,使溢出發生但又能繞過檢測,最終用極小的 Token 金額即可換取巨額流動性資產,以下為具體步驟解析:


(攻擊時序圖)


1. 攻擊者首先通過閃電貸借出了 10,024,321.28 個 haSUI,導致池子價格從 18,956,530,795,606,879,104 暴跌至 18,425,720,184762886,價格下跌幅度達到 99.90%。



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。



我們來分析一下攻擊者為什麼能夠用 1 個 Token 兌換出巨額流動性。 其核心原因在於 get_delta_a 函數中的 checked_shlw 存在溢出檢測繞過漏洞。 攻擊者正是利用了這一點,使得系統在計算實際需要添加多少 haSUI 時出現了嚴重偏差。 由於溢出未被檢測,系統誤判了所需 haSUI 的數量,導致攻擊者僅需極少的 Token,就能兌換出大量的流動性資產,從而實現了攻擊。


當系統計算添加如此巨大流動性需要多少 haSUI 時:



這裡的關鍵在於 checked_shlw 函數的實現存在嚴重缺陷。 實際上,任何小於 0xffffffffffffffff



· 錯誤掩碼:0xffffffffffffffff

· 幾乎所有輸入都小於這個掩碼,繞過溢出檢測

· 真正的問題:當 n >= 2^192 時,n


攻擊者構造的中間值 liquidity * sqrt_price_diff = 6277101735386680763835789423207666908085499738337898853712:


· 小於錯誤掩碼,繞過溢出檢測

· 但在左移 64 位後會超出 u256 最大值,從而導致超出的部分被截斷

· 導致最終計算結果約小於 1,但由於是向上取整,quotient 算出來就等於 1



4. 最後攻擊者移除流動性,獲得巨額代幣收益:


· 第一次移除:獲得 10,024,321.28 個 haSUI

· 第二次移除:獲得 1 個 haSUI

· 第三次移除:獲得 10,024,321.28 個 haSUI



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 函數如下:



修復說明:將錯誤的掩碼 0xffffffffffffffff mask 修正為 n >= mask 確保當左移 64 位可能導致溢出時,能正確檢測並返回溢出標誌


MistTrack 分析


據分析,攻擊者 0xe28b50cef1d633ea43d3296a3f6b67ff0312a5f1a99f0af753c85b8b5de8ff06 獲利約 2.3 億美元,包括 SUI、vSUI、USDC 等多種資產。



我們發現攻擊者在兩天前就準備好了 Gas Fee,然後在攻擊之前進行了一次嘗試,但失敗了:



獲利後,攻擊者將部分資金如 USDC、SOL、suiETH 通過跨鏈橋如 Sui Bridge、Circle、Wormhole、Mayan 跨鏈到 EVM 地址 0x89012a55cd6b88e407c9d4ae9b3425f55924919b:



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



接著,攻擊者將價值 1,000 萬美元的資產存入 Suilend:



攻擊者還將 24,022,896 SUI 轉入新地址 0xcd8962dad278d8b50fa0f9eb0186bfa4cbdecc6d59377214c88d0286a0ac9562,目前暫未轉出:



幸運的是,據 Cetus 稱,在 SUI 基金會及其他生態系統成員合作下,目前已成功凍結了在 SUI 上的 1.62 億美元的被盜資金。


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


接下來,我們使用鏈上反洗錢與追踪工具 MistTrack 分析 EVM 上接收跨鏈資金的地址 0x89012a55cd6b88e407c9d4ae9b3425f55924919b。 該地址在 BSC 上收到 5.2319 BNB,暫未轉出:



該地址在 Ethereum 上收到 3,000 個 USDT、4,088 萬個 USDC、1,771 個 SOL 和 8,130.4 個 ETH。 其中,USDT、USDC 和 SOL 通過 coW Swap、ParaSwap 等兌換為 ETH:




接著,該地址將 20,000 ETH 轉入地址 0x0251536bfcf144b88e1afa8fe60184ffdb4caf16,暫未轉出:



目前該地址在 Ethereum 上的餘額為 3,244 ETH:



MistTrack 已將以上相關地址加入惡意地址庫,同時,我們將對持續對地址餘額進行監控。


總結


本次攻擊展示了數學溢出漏洞的威力。 攻擊者通過精確計算選擇特定參數,利用 checked_shlw 函數的缺陷,以 1 個代幣的成本獲得價值數十億的流動性。 這是一次極其精密的數學攻擊,慢霧安全團隊建議開發人員在智能合約開發中嚴格驗證所有數學函數的邊界條件。


原文鏈接


歡迎加入律動 BlockBeats 官方社群:

Telegram 訂閱群:https://t.me/theblockbeats

Telegram 交流群:https://t.me/BlockBeats_App

Twitter 官方賬號:https://twitter.com/BlockBeatsAsia

本站轉載文章皆來自公開網絡,部分由AI整理,僅為傳遞產業訊息,不代表BTCC立場。原創權益歸原作者所有。如發現版權問題,請透過[email protected]聯絡我們,我們將依法處理。 BTCC不對資訊準確性、時效性及完整性作任何保證,不承擔因依賴資訊而產生的任何責任。內容僅供參考,不構成投資、法律或商業建議。

|Square

下載BTCC APP,您的加密之旅從這啟程

立即行動 掃描 加入我們的 100M+ 用戶行列