瞬態存儲漏洞致項目遭30萬美元攻擊 鏈上安全再敲警鍾

瞬態存儲漏洞導致鏈上項目遭受30萬美元攻擊

2025年3月30日,Ethereum鏈上一個槓杆交易項目遭受攻擊,損失超過30萬美元的資產。安全團隊對此事件進行了深入分析,以下是相關發現:

事件背景

攻擊者利用了Solidity 0.8.24版本引入的瞬態存儲(transient storage)特性中的一個漏洞。瞬態存儲是一種新的數據存儲位置,旨在提供低成本、交易期間有效的臨時存儲方式。它通過TSTORE和TLOAD指令實現,具有低gas成本、交易內持久性和自動清除等特點。

致命殘留:一場由瞬態存儲引發的30萬美元鏈上劫案

攻擊根源

攻擊的根本原因在於,函數中使用tstore進行瞬態存儲的值在函數調用結束後沒有被清空。攻擊者利用這一特性,構造了特定的惡意地址來繞過權限檢查,從而轉出項目中的代幣。

致命殘留:一場由瞬態存儲引發的30萬美元鏈上劫案

攻擊過程

  1. 創建惡意代幣並建立交易池:攻擊者創建兩個惡意代幣A和B,並在某DEX上爲這兩個代幣創建池子並注入流動性。

致命殘留:一場由瞬態存儲引發的30萬美元鏈上劫案

  1. 初始化槓杆交易市場:攻擊者調用項目合約的initialize函數,以A代幣爲抵押品,B代幣爲債務代幣創建槓杆交易市場。

致命殘留:一場由瞬態存儲引發的30萬美元鏈上劫案

  1. 鑄造槓杆代幣:攻擊者調用mint函數,存入債務代幣B鑄造槓杆代幣。在這個過程中,DEX池子地址和鑄造數量被瞬態存儲。

致命殘留:一場由瞬態存儲引發的30萬美元鏈上劫案

  1. 創建惡意合約:攻擊者創建一個地址與瞬態存儲中鑄造數量相同的惡意合約。

致命殘留:一場由瞬態存儲引發的30萬美元鏈上劫案

  1. 繞過權限驗證:攻擊者通過惡意合約調用項目合約的回調函數,由於瞬態存儲中的值未被清空,導致權限檢查被錯誤通過。

致命殘留:一場由瞬態存儲引發的30萬美元鏈上劫案

  1. 轉出資產:最後,攻擊者通過攻擊合約直接調用項目合約的回調函數,將合約中的其他代幣(如WBTC、WETH)轉出獲利。

致命殘留:一場由瞬態存儲引發的30萬美元鏈上劫案

損失評估

據鏈上分析工具的數據,攻擊者盜取了約30萬美元的資產,包括17,814.8626 USDC、1.4085 WBTC和119.871 WETH。這些資產隨後被兌換並轉入某匿名系統。

致命殘留:一場由瞬態存儲引發的30萬美元鏈上劫案

安全建議

  1. 合理使用瞬態存儲:項目方應根據業務邏輯,在函數調用結束後立即使用tstore(key, 0)清除瞬態存儲中的值。

致命殘留:一場由瞬態存儲引發的30萬美元鏈上劫案

  1. 加強合約審計:應對項目合約代碼進行全面的安全審計和測試,以發現並修復潛在的漏洞。

致命殘留:一場由瞬態存儲引發的30萬美元鏈上劫案

  1. 完善權限驗證:在關鍵操作中實施多重驗證機制,避免單一驗證被繞過。

致命殘留:一場由瞬態存儲引發的30萬美元鏈上劫案

  1. 監控異常活動:部署實時監控系統,及時發現和響應可疑交易。

致命殘留:一場由瞬態存儲引發的30萬美元鏈上劫案

本次事件再次強調了在採用新技術特性時進行全面安全評估的重要性。隨着區塊鏈技術的不斷發展,項目方需要保持警惕,持續更新安全實踐,以應對不斷演變的攻擊手法。

致命殘留:一場由瞬態存儲引發的30萬美元鏈上劫案

致命殘留:一場由瞬態存儲引發的30萬美元鏈上劫案

致命殘留:一場由瞬態存儲引發的30萬美元鏈上劫案

致命殘留:一場由瞬態存儲引發的30萬美元鏈上劫案

WBTC0.63%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 3
  • 分享
留言
0/400
Gas费破产家vip
· 07-27 11:42
又一个漏洞大坑
回復0
WalletDivorcervip
· 07-25 07:46
掉的都是教训钱
回復0
MetaMuskRatvip
· 07-25 07:31
相当昂贵的教训啊
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)