BTC $84,630.43 -1.51%
ETH $2,676.86 -1.64%
BNB $767.06 -1.39%
XRP $1.49 -1.73%
SOL $119.60 -1.89%
TRX $0.3348 +0.23%
DOGE $0.0930 -2.65%
ADA $0.2466 -2.35%
BCH $309.74 -1.26%
LINK $14.03 -3.05%
HYPE $88.67 -0.12%
AAVE $179.65 -0.90%
SUI $1.14 -2.97%
XLM $0.2154 -2.89%
ZEC $1,321.36 -3.99%
AAPL $333.29 +0.54%
AMZN $251.85 +1.17%
GOOGL $343.80 +1.15%
MSFT $517.77 +0.24%
META $726.94 -0.23%
NVDA $234.23 +1.01%
TSLA $370.80 +4.16%
SNDK $1,718.39 -3.88%
INTC $117.99 -2.25%
SPCX $158.97 +6.50%
MU $1,067.83 -2.16%
AMD $633.29 +2.20%
BTC $84,630.43 -1.51%
ETH $2,676.86 -1.64%
BNB $767.06 -1.39%
XRP $1.49 -1.73%
SOL $119.60 -1.89%
TRX $0.3348 +0.23%
DOGE $0.0930 -2.65%
ADA $0.2466 -2.35%
BCH $309.74 -1.26%
LINK $14.03 -3.05%
HYPE $88.67 -0.12%
AAVE $179.65 -0.90%
SUI $1.14 -2.97%
XLM $0.2154 -2.89%
ZEC $1,321.36 -3.99%
AAPL $333.29 +0.54%
AMZN $251.85 +1.17%
GOOGL $343.80 +1.15%
MSFT $517.77 +0.24%
META $726.94 -0.23%
NVDA $234.23 +1.01%
TSLA $370.80 +4.16%
SNDK $1,718.39 -3.88%
INTC $117.99 -2.25%
SPCX $158.97 +6.50%
MU $1,067.83 -2.16%
AMD $633.29 +2.20%

Nemo合約安全漏洞致259萬美元被盜,Sui鏈上資產安全再敲警鐘

Summary: 北京時間2025年9月7日,Sui鏈上的Nemo被攻擊,黑客通過操作py_index以竊取約259萬美元。此次Nemo被盜根本原因是PyState錯誤地設置為可變引用。
ExVul 安全
2025-09-12 10:56:02
北京時間2025年9月7日,Sui鏈上的Nemo被攻擊,黑客通過操作py_index以竊取約259萬美元。此次Nemo被盜根本原因是PyState錯誤地設置為可變引用。

事件概述:

北京时间2025年9月7日,Sui鏈上的Nemo被攻擊,黑客通過操作py_index以竊取約259萬美元。

Nemo合約安全漏洞致259萬美元被盜,Sui鏈上資產安全再敲警鐘

Nemo合約安全漏洞致259萬美元被盜,Sui鏈上資產安全再敲警鐘

Attacker Address:

0x01229b3cc8469779d42d59cfc18141e4b13566b581787bf16eb5d61058c1c724

Attack Transaction:

https://suivision.xyz/txblock/HMMicxQWn43rnNswi4gNHanUaeiWW5ijqM5bHLca67D9?tab=Overview

Nemo Package:

0x0f286ad004ea93ea6ad3a953b5d4f3c7306378b0dcc354c3f4ebb1d506d3b47f

根本原因:

此次Nemo被盜根本原因 是PyState錯誤地設置為可變引用,導致攻擊者可以惡意修改pyindex,在調用mintpy函數時通過py_index與分離出SY參數相乘得到大量的PT和YT。

經過深入分析發現,在py.getsyamountinforexactpyout 函數調用 py.currentpyindex時允許傳入一個毫無約束的數用於修改 pyState 的 pyindex 字段。

·py.getsyamountinforexactpy_out計算出PY輸出所需要的SY的輸入量,然而這裡index沒有任何限制

Nemo合約安全漏洞致259萬美元被盜,Sui鏈上資產安全再敲警鐘

·py.currentpyindex將傳入的pyindex和存儲的index比較,返回最大的作為pystate.pyindexstored的最新值

Nemo合約安全漏洞致259萬美元被盜,Sui鏈上資產安全再敲警鐘

攻擊過程分析:

1.攻擊者調用 initpyposition 函數初始化一個 py_position(初始化用戶的倉位記錄,與本次攻擊無關)。

Nemo合約安全漏洞致259萬美元被盜,Sui鏈上資產安全再敲警鐘

2.接著利用閃電貸 py.borrowptamount 借出大量PT代幣(後續通過swap換取SY餘額)。

Nemo合約安全漏洞致259萬美元被盜,Sui鏈上資產安全再敲警鐘

3.調用100次market.swapexactptforsy將PT兌換成SY代幣。

Nemo合約安全漏洞致259萬美元被盜,Sui鏈上資產安全再敲警鐘

4.通過py.getsyamountinforexactpyout計算出PY輸出所需要的SY的輸入量,這裡攻擊者將pyindex傳入一個構造的極大的數553402322211286548480000,破壞了原本的結構。

Nemo合約安全漏洞致259萬美元被盜,Sui鏈上資產安全再敲警鐘

5.接著攻擊者利用被異常放大的指數,在調用 yieldfactory.mintpy 時,以畸高的折扣利率鑄造 PT 與 YT,從而套取大量 PT。

Nemo合約安全漏洞致259萬美元被盜,Sui鏈上資產安全再敲警鐘

MintEvent如下:

Nemo合約安全漏洞致259萬美元被盜,Sui鏈上資產安全再敲警鐘

6.最後攻擊者使用鑄造的PT通過 py.repayptamount 償還債務,然後通過redeem贖回收益型資產,並在Scallop中提取代幣。


至此攻擊者通過操作 py_index 已盜取約259萬美元,之後將資產轉換為USDC並通過Bridge進行跨鏈轉移,最終轉換為ETH和DAI存儲在 0x41b1906c4BCded607c6b02861cE15C2E49FF7576。

在攻擊發生後Nemo團隊緊急暫停了智能合約功能,並開始調查攻擊事件。調查結果表明259萬美元資產損失攻擊源於在未充分審計的情況下上線新功能。

事件總結:

此次攻擊的核心在於將敏感數據錯誤的設置為可寫狀態導致攻擊者可以自由傳入參數並進行修改,對於敏感數據的狀態應做好嚴格限制和檢查。

warnning 風險提示
app_icon
ChainCatcher 與創新者共建Web3世界