Back to Blog

Web3 安全週報:2026 年 2 月 16 日至 2 月 22 日

Code Auditing
February 25, 2026
7 min read

在過去的一週(2026 年 2 月 16 日至 2 月 22 日)中,BlockSec 偵測並分析了三起攻擊事件,估計總損失約為 622 萬美元。下表總結了這些事件,詳細案例分析請見後續章節。

日期 事件 類型 估計損失
2026/02/16 Moonwell 事件 設定錯誤 約 178 萬美元
2026/02/19 PearlDriver 事件 數值溢位 約 4 萬美元
2026/02/21 IoTex 事件 金鑰洩漏 約 440 萬美元

1. Moonwell 事件

簡要總結

2026 年 2 月 16 日,Base 鏈上的 Moonwell 協議因預言機設定錯誤遭到攻擊,導致約 178 萬美元的壞帳。此問題發生在執行 MIP-X43 提案期間,其中 Base 鏈的 cbETH 預言機被錯誤地分配了 cbETH/ETH 匯率來源,而非結合了 ETH/USD 價格的綜合預言機。這導致預言機回報的 cbETH 價格約為 1.12 美元,而非其約 2,200 美元的實際市場價值。清算機器人隨即扣押了 1,096.317 枚 cbETH,並在上限被調低以停止攻擊前償還了極少量的債務。

背景

Moonwell 是一個跨多條鏈的借貸協議,並於 2026 年 2 月 16 日執行了名為 MIP-X43 的提案。該提案旨在啟動 Base 和 Optimism 上所有剩餘的核心與隔離市場的 Chainlink OEV(預言機可提取價值)包裝合約,將涵蓋範圍擴大到 MIP-X38 中啟用的最初三個數據源之外。OEV 包裝合約旨在讓協議在依賴預言機價格的清算過程中獲取價值,同時確保清算人仍能獲得適當的激勵。

漏洞分析

漏洞源於 ChainlinkOracleConfigs.sol 建構函式中的設定錯誤。對於 Base 鏈上的 cbETH,該提案將預言機設定為 "cbETHETH_ORACLE"(一個 cbETH/ETH 匯率數據源),而非正確的綜合預言機(該預言機將此匯率與 ETH/USD 價格結合)。當 OEV 包裝合約部署並透過 ChainlinkOracle 上的 setFeed() 設定為數據源時,協議開始將原始匯率(cbETH/ETH ≈ 1.12)作為 cbETH 的美元價格。這導致回報價格(約 1.12 美元)與實際市場價值(約 2,200–2,400 美元)之間出現巨大差異,造成 cbETH 抵押品被低估了約 2,200 倍。

攻擊分析

  1. 2026 年 2 月 16 日協調世界時 (UTC+8) 凌晨 2:01,MIP-X43 執行完成,啟用了 Base 鏈上設定錯誤的 cbETH 預言機。

  2. 監控協議的清算機器人立即偵測到價格差異,並對 cbETH [抵押部位] 執行清算。

  1. 幾分鐘內,1,096.31 枚 cbETH 被清算人扣押,在受影響的市場中產生約 178 萬美元的壞帳。

結論

此事件最終是由於 Moonwell 在執行 MIP-X43 部署時出現設定錯誤,將 Base 鏈 cbETH 錯誤地分配為 cbETH/ETH 匯率數據源,而非正確的綜合預言機。這種設定錯誤導致大量的 cbETH 抵押品被迅速耗盡。

對於管理多個預言機來源的協議而言,實作徹底的部署前驗證程序至關重要,以確保每個資產都連結到預期的價格來源。嚴格的驗證可以顯著降低此類高影響錯誤設定的風險。


2. PearlDriver 事件

簡要總結

2026 年 2 月 19 日,PearlDriver 位於幣安智慧鏈 (BSC) 上的 NLAMM 聯合曲線合約遭到攻擊,導致約 4 萬美元損失。根本原因是 buy() 函式中未經檢查的算術溢位,這使得攻擊者能夠以近乎零的成本鑄造極大量的遊戲代幣,然後傾倒至 PearlDEX 流動性池中。

背景

PearlDriver 利用 NLAMM(非線性自動造市商)聯合曲線進行代幣鑄造。使用者可以透過 buy() 函式購買遊戲資源代幣,購買穩定幣成本的計算方式為:成本 = 金額 * 當前價格

在正常情況下,該公式確保所需的支付與購買數量成正比。聯合曲線依賴於購買數量越大所需支付相應越多的假設,從而維護定價完整性並防止不成比例的代幣發行。

漏洞分析

根本原因是穩定幣支付計算中的算術溢位。整個 buy() 函式包裹在 unchecked 區塊中,停用了 Solidity 內建的溢位保護。因此,用於計算購買成本的乘法在超過整數最大限制時不會還原(revert)。相反,數值發生了溢位並繞回到一個極小的數字,從而大幅降低了所需支付的費用。

結果,攻擊者能夠以近乎零的成本鑄造大量代幣,隨後立即傾倒進 DEX 流動性對中以耗盡 USDT。

攻擊分析

一筆交易中,攻擊者利用相同的攻擊模式,針對五種資產(鐵礦、煤炭、木材、沙子和黏土)分別利用了易受攻擊的 buy() 函式。以第一種資產為例:

  1. 攻擊者在呼叫 buy() 時指定了極大的購買數量。由於未經檢查的算術,計算出來的 金額 * 當前價格 溢位並回繞至近乎零的值,僅需 0.0053 USDT(少於 0.01 美元)即可支付。儘管成本微不足道,合約還是為攻擊者鑄造了海量的鐵礦,具體而言是 7.03 × 10⁵⁸ 枚代幣。

  2. 攻擊者立即將部分鑄造的鐵礦替換至其對應的 PearlDEX 流動性對,獲得了 7,805.55 USDT(約 7,805.56 美元)。

同樣的溢位與拋售序列被用於對付其他四種資產,耗盡了每個資產-USDT 流動性對,總共產生超過 4 萬美元的利潤。

結論

此事件是由於 NLAMM buy() 函式的定價邏輯中存在未經檢查的算術運算所導致。透過停用溢位檢查,該函式允許極端的輸入值扭曲支付計算,破壞了聯合曲線模型的經濟假設。

雖然未經檢查的算術在嚴密控制的場景中可能是合適的,但在直接決定支付金額的財務邏輯中使用它可能會帶來重大風險。為了減輕此類風險,開發人員應仔細審查所有算術運算,並在考慮停用 Solidity 0.8+ 內建溢位檢查時保持謹慎,特別是在影響定價或轉帳的程式碼路徑中。


3. IoTex 事件

簡要總結

2026 年 2 月 21 日,IoTex 的 ioTube 跨鏈橋在以太坊驗證器(Validator)所有者金鑰洩漏後遭到安全攻擊。攻擊者獲得了 Validator 合約的所有權,隨後控制了 TokenSafeMintPool 合約,耗盡了價值約 440 萬美元的橋接儲備,並鑄造了超過 4 億枚 CIOTX 代幣。被盜的儲備金被兌換並部分橋接至比特幣。據專案方稱,約有 3.55 億枚鑄造的 CIOTX 代幣已被永久鎖定或凍結。

背景

被駭的 ioTube 是 IoTex 的跨鏈橋基礎設施,連接 IoTex Layer 1 與以太坊等其他網路。在以太坊上,橋接架構以 Validator 合約(即 TransferValidatorWithPayload)為核心,該合約負責驗證跨鏈結算訊息並管理下游的鑄造合約。這些合約包括持有橋接儲備資產的 TokenSafe,以及擁有特定代幣(如 CIOTX)鑄造許可權的 MintPool

漏洞分析

根本原因是 Validator 合約所有者的私鑰洩漏。由於該橋接依賴於單一外部帳戶 (EOA),且未配備多重簽名或時間鎖控制,擁有此金鑰即獲得了完全的管理員控制權。攻擊者使用合約的 upgrade() 函式,將 TokenSafeMintPool 合約的所有權轉移至一個受攻擊者控制的地址。這使得攻擊者能夠直接提取橋接儲備資產並擅自鑄造大量的 CIOTX。

攻擊分析

  1. 洩漏以太坊上的 Validator 合約所有者金鑰,獲得管理控制權

  2. 使用 Validator 合約將 TokenSafeMintPool 合約的所有權轉移

  1. TokenSafe 中耗盡約 440 萬美元的儲備資產(USDC、USDT、WBTC、WETH、BUSD 等),並透過 MintPool 鑄造超過 4 億枚 CIOTX。

  2. 將被盜取的儲備代幣進行兌換並橋接至其他鏈。

結論

此事件是教科書式的單點故障金鑰洩漏案例。整個以太坊側橋接的安全完全依賴於一個具有完全行政權限且缺乏多重簽名或時間鎖防範的單一 EOA。一旦該 EOA 的私鑰洩漏,就等於失去了對橋接關鍵元件的控制權。

此案例凸顯了集中式行政控制的風險,並強調了透過更強大的治理機制來分散升級和託管權限的重要性。


關於 BlockSec

BlockSec 是一家全堆疊區塊鏈安全與加密合規服務供應商。我們建構產品與服務,協助客戶在協議與平台的全生命週期中執行程式碼審計(包括智慧合約、區塊鏈與錢包)、即時攔截攻擊、分析事件、追蹤非法資金,並滿足 AML/CFT 合規義務。

BlockSec 已在知名會議上發表多篇區塊鏈安全論文,通報了多項 DeFi 應用的零日漏洞,阻止了多次駭客攻擊並挽回了超過 2,000 萬美元的資產,保護了價值數十億美元的加密貨幣。

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit