慢霧:Cetus被竊2.3億美元,解析攻擊手法及資金移轉狀況
作者:Victory & Lisa
背景
5 月22 日,根據社區消息,SUI 生態上的流動性提供者Cetus 疑似遭攻擊,流動性池深度大幅下降,Cetus 上多個代幣交易對出現下跌,預計損失金額超過2.3 億美元。隨後,Cetus 發佈公告稱:“我們協議中檢測到了一起事件,安全起見,智能合約已暫時暫停。目前,團隊正在對該事件展開調查。我們很快就會發布進一步的調查聲明。”
事件發生後,慢霧安全團隊第一時間介入分析,並發布安全提醒。以下是攻擊手法及資金轉移情況的詳細解析。
相關資訊
其中一筆攻擊交易:
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 << 192的輸入值都會繞過溢位偵測。然而,當這些值被左移64 位元時,結果會超出u256的表示範圍,此時高位元資料被截斷,導致得到的結果遠小於理論值。這樣一來,系統在後續計算中就會低估所需的haSUI 數量。
- 錯誤遮罩:0xffffffffffffffff << 192= 非常大的數值(約2^256-2^192)
- 幾乎所有輸入都小於這個掩碼,繞過溢位偵測
- 真正的問題:當n >= 2^192時,n << 64會超出u256 範圍並被截斷
攻擊者構造的中間值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 << 192修正為正確的閾值1 << 192
- 將判斷條件從n > 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 億美元的被盜資金。
接下來,我們使用鏈上反洗錢與追蹤工具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 個代幣的成本獲得價值數十億的流動性。這是一次極為精密的數學攻擊,慢霧安全團隊建議開發人員在智慧合約開發中嚴格驗證所有數學函數的邊界條件。
免責聲明:文章中的所有內容僅代表作者的觀點,與本平台無關。用戶不應以本文作為投資決策的參考。
您也可能喜歡
Metaplanet 公佈 54 億美元股權增資計劃以加速比特幣累積
Metaplanet 宣布將籌集54億美元的股權資金以購買更多比特幣,計劃在未來兩年內出售5.55億股。Metaplanet 希望在計劃全面執行並結合其他融資工具後,加入比特幣1%俱樂部,目標是在2027年底前持有210,000 BTC。

Ark Invest在首次亮相時購買了3.73億美元的Circle股份;削減Coinbase、Robinhood和自家比特幣ETF的持倉以騰出空間
快速摘要 根據最新披露,Ark Invest在週四Circle於紐約證券交易所首次亮相時購買了價值3.734億美元的Circle股票。該投資公司還出售了Coinbase、Robinhood、Block的股票以及其自己的比特幣ETF,以重新平衡其基金權重。

FCA將解除對零售投資者的加密ETN禁令,使英國與其他許多國家保持一致
快速摘要 英國金融監管機構將解除對零售投資者的加密貨幣交易所交易票據的禁令。FCA表示,此舉旨在支持英國的增長和競爭力,允許加密ETN銷售給個人,而不僅僅是專業投資者。

Strategy擴大STRD永久優先股發行至10億美元以購買更多比特幣
Quick Take Strategy已宣布其STRD永久優先股發行的定價,將交易規模從2.5億美元擴大至10億美元。公司計劃將所得款項用於一般企業用途,包括收購比特幣。

熱門新聞
更多加密貨幣價格
更多








