Back to Blog

Web3 安全週報 | 2026年3月30日 – 4月5日

Code Auditing
April 8, 2026
15 min read
Key Insights

在過去的一週內(2026/03/30 - 2026/04/05),BlockSec 檢測並分析了九起攻擊事件,估計總損失約為 2.87 億美元。下表總結了這些事件,後續章節則提供了每起案件的詳細分析。

日期 事件 類型 估計損失
2026/03/30 未知協議事件 業務邏輯缺陷 約 1 萬美元
2026/03/30 WDGG 代幣事件 存取控制 約 4 萬美元
2026/03/31 i6Token 事件 業務邏輯缺陷 約 27.38 萬美元
2026/04/01 Drift Protocol 事件 網路釣魚攻擊 約 2.853 億美元
2026/04/01 LML Staking Protocol 事件 業務邏輯缺陷 約 95 萬美元
2026/04/01 Tactile 事件 價格操縱 約 1.2 萬美元
2026/04/02 SAS 代幣事件 業務邏輯缺陷 約 1.2 萬美元
2026/04/03 未知 EIP-7702 事件 存取控制 約 1.72 萬美元
2026/04/03 Silo Finance 事件 配置錯誤 約 35.9 萬美元

Web3 最佳安全審計服務

在正式上線前驗證設計、程式碼與業務邏輯

1. 未知協議事件

事件概述

2026 年 3 月 30 日,BNB Chain 上的一個未知協議因業務邏輯缺陷損失了約 1 萬美元。該協議將部分用戶存款用於購買其平台代幣 PSTART 並添加流動性,這意味著用戶實際上持有受市場價格波動影響的 LP 部位。然而,在用戶提款時,協議並未根據 LP 在當時的實際可贖回價值進行結算,而是繼續根據歷史存款和預設規則承諾支付固定數量的穩定幣。因此,攻擊者在通過強制投資注入資金後,能夠以預定的固定價值贖回資金,從而將原本應由 LP 部位承擔的損失轉嫁給協議,最終實現零成本套利。

背景

該協議運作方式如下:用戶存入 BUSD 後,協議自動利用部分資金購買 PSTART,並與剩餘的 BUSD 配對添加至流動性池中。生成的 LP 份額由 Vault 託管,同時協議在內部的帳本上為用戶記錄一筆承諾固定日收益的訂單。

隨後,用戶可以按固定利率領取獎勵,當退出時,Vault 會根據預設規則而非底層 LP 部位的實時淨資產價值結算本金與收益。

漏洞分析

此漏洞源於該協議 (0x587984...73a43c) 不合理的設計:結算邏輯與底層資產的實際價值脫鉤。

用戶存入 BUSD 後,協議用其部分資金購買 PSTART 添加流動性,即用戶真實的底層部位是 LP,其價值受市場價格波動。然而用戶退出時,協議不按當前 LP 的可贖回價值結算,而是承諾按歷史存款及預設規則支付固定的穩定幣金額。

攻擊者利用閃電貸獲取大量資金並重複執行 deposit()。通過這種方式,攻擊者迫使協議不斷購買 PSTART 並改變池中的資產構成,人為推高 PSTART 價格,製造套利空間。

隨後,攻擊者執行 withdraw() 以約定的固定價值贖回資金,實質上是將應由底層 LP 部位承擔的虧損轉嫁給了協議自身,最終實現了零成本獲利

攻擊分析

以下分析基於交易 0xf3b8...55e7

  • 第一步:攻擊者通過閃電貸獲取約 2,000,000e18BUSD,並在池中兌換為 19,013,120e18PSTART

  • 第二步:攻擊者重複調用合約的 deposit() 函數進行質押。每次存款時,協議計算需使用多少 BUSD 購買代幣,以使添加流動性時的最終代幣與 BUSD 比例接近池中當前比例。通過重複存款,攻擊者將 BUSD 持續注入池中,而 PSTART 數量基本不變。導致 PSTART 價格不斷上漲。在此階段,攻擊者透過存款獲得的 LP 本質上是在虧錢買入。

  • 第三步:攻擊者將第一步中購買的 PSTART 賣回池中。由於第二步的操作增加了池中的 BUSD 儲備,此次兌換回流了約 2,010,655e18 BUSD,單次攻擊週期獲利約 10,655 BUSD。

  • 第四步:最後,攻擊者對第二步中開立的所有質押部位執行 withdraw()。此時,對應這些部位的資產市場價值遠低於初始存款成本。按經濟學邏輯本不應足額贖回,但協議是根據歷史存款金額計算可贖回的 BUSD,使得攻擊者在無需承擔任何損失的情況下全部贖回了強制投入的資金。

結論

本事件的根本原因在於協議將用戶資金投入到受市場價格影響的 LP 部位,卻承諾按歷史存款價值與預設規則進行固定結算。這導致了協議的負債與底層資產的真實價值嚴重脫節。

攻擊者利用這一結構性缺陷,通過不斷執行 deposit() 修改池內容結構並抬高 PSTART 價格,隨後通過外部部位完成套利,最後利用 withdraw() 將虧損的部位按帳面價值贖回。從而將原本應由部位自身承擔的損失轉嫁給了協議,最終實現無風險套利。


開始使用 Phalcon Explorer

深入每一筆交易,做出明智決策

立即免費體驗

2. WDGG 代幣事件

事件概述

2026 年 3 月 30 日,BNB Chain 上的 WDGG 代幣遭攻擊,造成約 4 萬美元損失。根本原因是 burnFrom() 函數缺乏存取控制,允許任意使用者從任何地址燃燒 WDGG 代幣。攻擊者利用此點燃燒 PancakeSwap 池中的 WDGG 代幣,隨後調用 sync() 減少池內儲備量,最後進行反向兌換獲利。

背景

本事件涉及的單一代幣 WDGG 具有分紅功能,且每筆轉帳會收取一定費用。

漏洞分析

WDGG 代幣合約 (0x512de7...6b90c5) 公開了 burnFrom() 函數,但未對調用者進行任何權限驗證。這意味著任何人都可以燃燒包括 PancakeSwap 池地址在內的任意地址中的代幣。配合 PancakeSwap 公開可調用的 sync() 函數(用於重置池的帳面儲備量與實際餘額),該缺陷使得池內 WDGG 儲備量可以被惡意減損,且無需進行任何實際交易即可破壞恆定乘積公式,進而暴露於價差套利之下。

此外,setWdgAddress() 中的第二個漏洞允許任意調用者將指定地址設為「免手續費地址」,進一步最大化了可提取的利潤空間。

攻擊分析

以下分析基於交易 0x2da5...0bd1

  • 第一步:攻擊者調用 setWdgAddress() 將自己的地址設置為免手續費,確保後續操作不受轉帳費用影響。
  • 第二步:攻擊者通過 PancakeSwap 池將少量 BNB 兌換為少量 WDGG

  • 第三步:獲取 WDGG 後,攻擊者調用 burnFrom() 直接從 PancakeSwap 的交易對地址中燃燒 WDGG 代幣。

  • 第四步:隨後調用 sync(),強迫交易對將存備量更新為與被操縱後的餘額一致。結果,池中的 WDGG 儲備被減少至僅剩 1 wei。

  • 第五步:在池儲備量發生嚴重扭曲的情況下,攻擊者執行反向兌換,從價格偏差中獲取利潤。

結論

該事件的根本原因是 WDGG 代幣合約的 burnFrom() 函數缺乏必要權限控制。這使得攻擊者能夠直接燃燒流動性池中的代幣,通過 sync() 操縱池儲備量,並利用價格失衡進行獲利。


3. i6Token 事件

事件概述

2026 年 3 月 31 日,BNB Chain 上的 i6 代幣損失了約 27.38 萬美元,原因是 invest() 操作會影響池的現貨價格,而 withdraw() 則通過滯後的 TWAP 機制進行結算,兩者可以在同一筆交易中執行。攻擊者通過 invest() 推高現貨價格,利用滯後的 TWAP 透過 withdraw() 贖回多餘的 i6,並將贖回的代幣賣回池中以實現套利。

背景

該協議運作如下:當使用者調用 invest() 時,存入 USDT 並部分透過 PancakeSwap 購買 i6。接著將所獲的 i6 與剩餘的 USDT 作為流動性存入 USDT/i6 池,並燃燒掉相關 LP 代幣。協議以 USDT 為單位記錄使用者的質押與推薦餘額。

調用 withdraw() 時,協議將使用者的累計 USDT 價值換算為 i6,換算價格基於協議維護的 TWAP (twapPrice)。

漏洞分析

協議合約 (0x1cb36b...2a18a) 的根本問題在於:invest() 的副產品是改變了 USDT/i6 池的現貨價格,而 withdraw() 卻使用僅在特定時間窗口過期後才會更新的 TWAP (twapPrice) 來結算 USDT 餘額。合約沒有機制阻止這兩個函數在同一筆交易中執行。

由於 invest() 可以在交易內推高現貨價格,而隨後的 withdraw() 讀取的是尚未更新的 TWAP,導致同一池狀態在同一筆交易中呈現兩個不同的價格。透過 withdraw() 贖回的 USDT 餘額會以低廉的「過時價格」兌換出大量的 i6,儘管當下每單位 i6 在池中已值更高。這種落差使得協議內部的累計餘額與實際池價之間產生了巨大套利空間。

攻擊分析

以下分析基於交易 0xc1b9...2f16

  • 第一步:攻擊者先通過閃電貸獲取 270,000 WBNB,並在 Venus 抵押借出大量 USDT。同時部署攻擊合約 A (0xda49) 和助手合約 B (0x096a)。

  • 第二步:攻擊合約執行第一次 invest()。過程中,協議先用 531,489e18 USDT 買入 234,188e18 i6,再將 354,326e18 USDT72,607e18 i6 添加至池中。導致池現貨價格從約 1.05159 漲至約 4.89287 USDT/i6,但協議的 TWAP 仍停留在 1.05159

  • 第三步:攻擊者將 124,014,184e18 USDT 轉至助手合約 B,後者調用 invest(),推薦人為 A。此步再次迫使協議進行巨額兌換並添加流動性,將池價格推至約 15,528 USDT/i6。由於時間窗口未過,TWAP 未更新。

  • 第四步:隨後攻擊合約 A 作為推薦人獲取獎勵,立即調用 withdraw()。協議使用滯後的 TWAP 計算 payout,轉出 5,896,508e18 i6

  • 第五步:收到 i6 後,攻擊者立即將所有代幣賣回池中兌換 125,177,224e18 USDT。因為這些代幣是以過時的低價贖回,賣出時卻是在攻擊者推高的高價位,直接實現了兩者之間的巨大價差。

  • 第六步:還清閃電貸後,攻擊者套走 273,802e18 USDT 利潤。

結論

根本原因在於會影響現貨價格的操作函數與基於 TWAP 的結算函數可以在一筆交易中同時使用,造成價格認知偏差。

為防止此類風險,協議在結合自動做市商 (AMM) 操作與延遲價格機制時,應避免在同一交易中結算餘額,並應錨定實際價值而非過時價格。


4. Drift Protocol 事件

事件概述

2026 年 4 月 1 日,Solana 上的 Drift Protocol 被突破,損失約 2.853 億美元。根本原因並非智慧合約漏洞,而是多重簽名 (Multisig) 授權流程的問題:Drift 採用無凍結時間 (timelock) 的 2-of-5 安全委員會機制,並配合 Solana 的耐用 nonce (durable nonce) 機制,導致攻擊者可以永久攔截並重放這些已授權的指令。經過數週的部署,攻擊者誘導多名簽署人簽署與耐用 nonce 綁定的惡意交易,隨後通過獲取管理權限並創建偽造抵押資產 (CVT),抬高價格後繞過提款上限,從 Drift Vault (JCNCMF...XJfrw) 中抽走真實資產。

背景

Drift Protocol 是一個基於 Solana 的流動性與交易協議。其關鍵操作(如管理員變更、市場創建、風險參數更新等)由 Squads 的多簽機制管理。當時 Drift 的安全委員會使用 2-of-5 閾值配置且無「鎖定時間」,意味著任兩人即可即時授權行政操作。

Solana 的「耐用 nonce」機制取代了短暫的區塊雜湊,允許已簽名的交易長期有效直到執行。本用於離線簽名,卻成為關鍵攻擊向量:一旦簽署人批准,該批准無法撤銷。

漏洞分析

根本原因在於 Drift 治理配置的三大結構性弱點:首先,耐用 nonce 移除了簽名時效限制,導致受騙簽署人的授權永久有效;其次,零鎖定時間使得管理權變更即時生效,未給社群留下檢測介入窗口;最後,管理員權限範圍過大,足以單次完成創建市場、切換預言機及調整風險參數的組合拳。

攻擊分析

攻擊分為三個階段:預熱部署(製造虛假資產並獲取治理權限)、治理篡改(提交兩個前置簽署的交易以奪權)、資金抽取

  • 第一階段:自 3 月 11 日起,攻擊者通過 Tornado Cash 部署 CVT 代幣,通過虛假交易抬高價格。到 3 月 23 日,已有兩個與 Drift 安全委員會相關的 nonce 帳戶備妥。

  • 第二階段:4 月 1 日,在 Drift 完成例行性檢查後,攻擊者迅速提交兩個前置簽署的 nonce 交易 2HvMSg...2C4H,奪取並執行管理權變更,將控制權轉移給攻擊者。

  • 第三階段:獲得管理權後,攻擊者為 CVT 創建抵押市場,切換至攻擊者自控的價格預言機並取消提款限制,隨後在 12 分鐘內執行 31 次提款,抽走 USDCSOLwETH 等多種資產。

結論

本事件揭示了「多簽流程中包含耐用 nonce 造成的延遲執行」所帶來的嚴重 threat vector。防禦此類風險需強化授權管道的安全,實施高權限操作的鎖定期,並對簽名機制設置更嚴格的時效與撤銷路徑。


5. LML Staking Protocol 事件

事件概述

2026 年 4 月 1 日,BNB Chain 上的 LML 質押協議損失了約 95 萬美元。原因在於獎勵計算的邏輯偏差:獎勵轉換讀取的是具 3600 秒更新冷卻的滯後 LML/USDT 價格,但 payout 的 LML 卻按實時 AMM 價格結算,兩者之間無偏差校驗。攻擊者利用閃電貸推高現貨價格,並利用 EIP-7702 合約委託批量領取獎勵,以舊價格換取大量 LML 並在扭曲後的價格中拋售套利。

背景

LML 協議透過 APower 存入 BNB 來賺取 LML。獎勵計算基於協議紀錄的 LML/USDT 價格,該價格由 updatePrice() 更新(有 3600 秒冷卻期)。

漏洞分析

根本漏洞在於獎勵累積與 redemption 使用了不同價格機制,且缺乏一致性檢測。獎勵函數基於滯後於 3600 秒更新的 _prices[] 進行結算,但產出的 LML 卻能以實時 AMM 價格賣出。

此外,另一個結構性漏洞在於 swapBack() 機制:當資金不足時,協議會直接從流動性池 (LP Pair) 中抽走 LML 以補給合約,這直接影響了儲備量與價格,進一步擴大了價格落差。

攻擊分析

以下分析基於交易 0x805d...5b47 等。

  • 第一步:攻擊者聚合大量資金進行閃電貸以供價格操縱。
  • 第二步:通過 swapAndTrans() 耗盡合約本身的 LML 儲備,強制後續獎勵請求觸發 swapBack()
  • 第三步:抬高 AMM 中的 LML 價格。
  • 第四步:攻擊者利用 EIP-7702 授權多個帳戶進行批量獎勵領取,系統在計算獎勵時仍使用過時的歷史低價,但實際產出的卻是高價 LML

結論

Staking 協議若使用 AMM 導出的價格,務必在領取獎勵階段設置偏差閾值,防止獎勵結算偏離市場價值過遠。同時,應避免採用會直接扭曲流動性池儲備量的自動補充機制。


6. Tactile 事件

事件概述

2026 年 4 月 1 日,Polygon 上的 Tactile 存款協議損失約 1.2 萬美元。原因在於存款與提款結算邏輯不一致:進出皆按實時 CES 價格轉換,而內部的份額帳本未紀錄原始存入的資產價值。攻擊者通過在存款前推高價格獲取份額,並在提款前壓低價格,透過多次週期反覆操作獲利。

漏洞分析

核心缺陷在於付費合約 (0x9153e1...09b654) 沒有鎖定存款時刻的價值。由於內部份額(Shares)不儲存原始存入金額,導致價值完全取決於進出時刻的實時 spot price,使得攻擊者可以輕易操控價格進行套利。

結論

涉及份額(Share)的資產協議,必須將每份份額錨定在 mint 時刻的具體資產數量或價值上,而非單純仰賴當前 oracle 價格,否則極易遭操縱。


7. SAS 代幣事件

事件概述

2026 年 4 月 2 日,BNB Chain 上的 SAS 代幣損失約 1.2 萬美元。原因在於特殊的 Deflationary 代幣邏輯:轉帳至 LP 池會增加 sellBurn 計數器,但在隨後的任意普通轉帳中,合約會直接燃燒池中的 SAS 並強制 sync()。攻擊者通過積累 sellBurn,隨後觸發燃燒,將池內 SAS 儲備減至 1 wei,實現對價差的絕對控制。

結論

Deflationary 代幣切記不可直接操作外部 AMM 池的儲備量。此類燃燒機制若有必要,必須由受信的 keeper 或受限的排程執行,嚴禁與普通的用戶轉帳綁定,以免遭到惡意觸發。


8. 未知 EIP-7702 事件

事件概述

2026 年 4 月 3 日,一個帳戶啟用 EIP-7702 委託後遭竊取約 1.72 萬美元。根本原因在於委託的合約代碼中公開了 pancakeV3SwapCallback() 函數且無任何權限驗證。攻擊者利用此回調函數直接提取 victim 帳戶內的代幣。

結論

對於任何實作 V3 風格回調的合約(包括 EIP-7702 帳戶),開發者務必在執行轉帳前驗證 msg.sender 是否為對應的 Canonical PancakeV3 池地址,絕不能直接信任任意調用者。


9. Silo Finance 事件

事件概述

2026 年 4 月 3 日,Silo Finance 的 soUSDC 金庫遭攻擊,虧損約 35.9 萬美元。根本原因是三個失效邏輯的匯聚:一、wstUSR 預言機在市場崩潰後仍錨定在脫鉤前的價格;二、供給上限無法限制外部捐款;三、totalAssets() 計費系統將未授權的 shares 也納入計價。攻擊者通過在無池市場中製造壞帳,並在贖回受影響的 soUSDC 時,強行從其他健全的市場抽調資金來覆蓋價格偏差。

結論

金庫聚合協議應確保 totalAssets() 僅計算自身觸發的存款操作。預言機的地址不應設為完全不可更改,必須考慮資產脫鉤時的治理應對機制。


開始使用 Phalcon Security

精準偵測威脅,攔截惡意攻擊。

立即免費體驗

關於 BlockSec

BlockSec 是一家全棧區塊鏈安全與合規解決方案供應商。我們為客戶提供包括程式碼審計(智慧合約、區塊鏈、錢包)、即時攻擊攔截、事件後續分析、 illicit 資金追蹤以及 AML/CFT 合規等全生命週期的服務。

BlockSec 已在頂級學術會議發表多篇區塊鏈安全論文,通報了多起 DeFi 系統的 0-day 漏洞,即時攔截多次駭客攻擊並挽救了超過 2,000 萬美元的資金,並保障了數十億美元的加密資產安全。

Best Security Auditor for Web3

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

BlockSec Audit