Back to Blog

#8:SushiSwap 事件:拙劣的救援嘗試引發一系列模仿攻擊

Code Auditing
February 18, 2024
6 min read

2023 年 4 月 9 日,SushiSwap 因未經驗證的外部參數(Unverified External Parameter)成為駭客攻擊目標。總損失約為 330 萬美元。

作為以太坊上擁有龐大用戶群的領先協議,即便是此類頂級協議,在合約升級過程中仍可能引入嚴重的安全問題。這提醒了 DeFi 社群,安全性應始終放在首位。 此外,本次安全事件是由一位白帽安全研究人員嘗試救援所觸發的,在社群內引發了相當大的爭議。我們在此對該事件進行簡明扼要的介紹,並將其列為 2023 年十大安全事件之一。

背景

SushiSwap

SushiSwap 是一個著名的去中心化交易所(DEX),曾對 Uniswap 發動過「吸血鬼攻擊」並取得巨大成功。其總鎖倉量(TVL)在巔峰時期曾達到 80 億美元,目前仍維持在 4 億美元左右。

授權(Approval)

簡而言之:指允許合約訪問並轉出您錢包中特定代幣的權限

為了方便起見,許多合約預設會要求無限額授權。許多用戶擔心安全風險,因此只往各種協議中存入少量資金,但他們卻授予了這些協議無限額的資金授權。如果某個協議遭到破壞,帳戶中所有已授權的代幣都可能面臨損失風險。

漏洞分析

未經驗證的外部參數

RouteProcessor2 合約的 processRoute() 函數允許用戶完全控制呼叫流程(參數 route)。 而在 uniswapV3SwapCallback() 中,safeTransferFrom() 的參數 from 是從用戶提供的 route 中解碼出來的。 因此,授權了 RouteProcessor2 合約的用戶最終損失了他們的資產。

攻擊過程

本次事件涉及多筆攻擊交易,我們以第一筆攻擊交易為例。 交易哈希:0x43ff7e01423044cfb501b4fe9ef1386725c0ddc117dadd6e6620cb68bdeaf4f9

  1. 攻擊者呼叫了有漏洞的 RouteProcessor2 合約的 processRoute(),並精心構造了一個較長的參數 route
  2. processRouteInternal() 根據用戶提供的 route 創建了一個 InputStream
  3. 交易按照攻擊者的 route 執行,直到達到 swapUniV3()。請注意,pool 是從 stream 中解碼出來的,這意味著攻擊者控制了在哪個 pool 進行 swap(),並將其設定為 lastCalledPool
  4. 這呼叫了攻擊者部署的惡意合約,該合約隨後只需傳遞惡意的 calldata 來回呼 RouteProcessor2 的 uniswapV3SwapCallback()
  5. uniswapV3SwapCallback() 需要檢查 msg.sender,但由於 lastCalledPool 已經被設定為惡意合約,駭客繞過了該檢查。重要的是,safeTransferFrom() 的參數 from 是從攻擊者構造的 calldata 中解碼出來的。
  6. 受害者的資產被轉移到了攻擊者部署的惡意合約中。

充滿爭議的白帽救援

值得一提的是,一位用戶名為 @trust__90 的白帽駭客發現了這個問題並嘗試救援資金,但這次救援行動卻釀成了災難:

  • 使用記憶體池(mempool)廣播交易,而非透過私有 RPC。
  • 僅嘗試救援 100 枚以太幣,而不是所有處於危險中的資金。

這為 MEV 機器人和其他攻擊者提供了機會,他們執行了多筆跟風交易(copycat transactions),有效地掏空了大部分資金。事後,@trust__90 面臨強烈抨擊,並試圖為其行為辯護

BlockSec 救援

在此次攻擊中,我們同樣救援了 100 枚以太幣,並將資金歸還給了受害者 0xsifu。

迄今為止,我們已成功挫敗了超過 20 起現實世界中的駭客攻擊,並救援了超過 14,000,000 美元的資產。

安全建議

升級必須進行審計

這提醒了整個 DeFi 社群:安全性應始終放在首位。審計並不能保證絕對安全,但缺乏審計絕對無法確保安全。

針對授權問題的緩解措施

2023 年發生了大量涉及授權攻擊的事件,我們藉此機會再次強調管理授權的重要性。 實用的安全做法是只授予必要的額度;若考慮便利性,建議僅授予比需求稍大的額度。

BlockSec 的 MetaSuites 提供了便捷的「授權診斷」功能。此外,您也可以使用像 Revoke Cash 這樣的工具定期檢查授權狀態。

採用監控與自動化響應機制

以太坊如同黑暗森林,DeFi 社群中的每個人都面臨著各種風險與挑戰,即便是安全專家也不例外。 2023 年,我們推出了 Phalcon Security,這是業界首個自動化響應系統,其設計不僅用於監控攻擊,更用於即時主動阻斷威脅。Phalcon 經過實戰檢驗的能力已證明了其有效性——成功挫敗了超過 20 起現實世界的駭客攻擊,保護了超過 14,000,000 美元的資產。這項創新確保了所有利益相關者都能更安心地入睡,因為他們知道有主動式安全措施在保護他們的投資。

閱讀本系列的其他文章:

Sign up for the latest updates
Harmony 跨鏈 ONE 鑄幣事件 + 約4700萬美元金鑰洩露損失 | BlockSec
Security Insights

Harmony 跨鏈 ONE 鑄幣事件 + 約4700萬美元金鑰洩露損失 | BlockSec

2026年8月10日至16日期間,共5起重大安全事件,量化損失約4700萬美元。深度分析聚焦Harmony Layer-1鏈實作缺陷:跨分片收據重放導致原生ONE被未授權鑄造,目的分片以未驗證的MerkleProof.ShardID及BlockNum欄位判定收據已花費標記,而非依簽署來源標頭,使已入帳收據可重放而無對應來源分片扣款。約偽造3.01兆ONE,惟其名目價值遠超代幣市值,無法變現亦未確認實現損失,故Harmony不計入總額;約4700萬美元來自私鑰洩露(未知巨鯨錢包約2500萬、Kite約1400萬、Coinsbuy約790萬)及Fox業務邏輯缺陷(約11.7萬)。

~$160萬美元損失:Moke代幣、LpdFi遭攻擊利用 | BlockSec週報
Security Insights

~$160萬美元損失:Moke代幣、LpdFi遭攻擊利用 | BlockSec週報

2026年8月3-9日當週,BNB Chain發生2起重大安全事件,總損失約160萬美元,均源於價格操縱。LpdFi事件(約69.7萬美元)重複使用同一可操縱的PancakeSwap流動池儲備進行訂單估值和利息贖回,使攻擊者虛增本金並操控池子以索取超額利息。Moke Token事件(約90.6萬美元)結合可操縱現貨價格與重複LP分紅計算,多次領取虛增的MOKE及BNB分紅。

COLDCARD事件:當錢包的「隨機」助記詞並不隨機
Security Insights

COLDCARD事件:當錢包的「隨機」助記詞並不隨機

COLDCARD固件存在靜默構建整合漏洞,導致比特幣種子生成回退至軟件RNG,其弱隨機性使錢包種子可被離線破解。由於弱點存在於種子本身,固件更新無法修復;截至2026年8月7日,已確認損失達1,405 BTC(約9,100萬美元),私下估計高達2,055 BTC。

Best Security Auditor for Web3

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

BlockSec Audit
#8:SushiSwap 事件:拙劣的救援嘗試引發一系列模仿攻擊