瞬態存儲漏洞致以太坊槓杆交易項目損失30萬美元

瞬態存儲漏洞導致價值30萬美元資產被盜

2025年3月30日,以太坊鏈上的槓杆交易項目遭受攻擊,損失超過30萬美元的資產。安全團隊對此事件進行了深入分析,現將結果分享如下:

背景

Solidity 0.8.24版本引入了基於EIP-1153的瞬態存儲特性。這是一種新的數據存儲位置,旨在爲開發者提供低成本、交易期間有效的臨時存儲方式。瞬態存儲通過TSTORE和TLOAD兩個新的EVM指令實現,具有低gas成本、交易內持久性和自動清除等特點。

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

攻擊原因

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

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

攻擊步驟

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

  2. 攻擊者調用Vault合約的initialize函數,以A代幣爲抵押品代幣,B代幣爲債務代幣創建槓杆交易市場。

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

  4. 攻擊者創建一個惡意合約,其地址與第二次瞬態存儲的值相同。

  5. 攻擊者通過惡意合約調用Vault合約的回調函數轉出代幣。由於瞬態存儲的值未被清空,導致身分檢查被錯誤通過。

  6. 最後,攻擊者通過攻擊合約(A代幣)調用Vault合約的回調函數,將其他代幣(如WBTC、WETH)轉出獲利。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

資金流向分析

攻擊者盜取了約30萬美元的資產,包括17,814.8626 USDC、1.4085 WBTC和119.871 WETH。WBTC被兌換爲63.5596 WETH,USDC被兌換爲9.7122 WETH。隨後,共193.1428 WETH被轉入某匿名平台。攻擊者的初始資金來源於該平台轉入的0.3 ETH。

總結

本次攻擊核心在於攻擊者利用瞬態存儲在整個交易期間保持不變的特性,繞過了回調函數的權限驗證。建議項目方根據業務邏輯在函數調用結束後立即使用tstore(key, 0)清除瞬態存儲中的值。同時,應加強合約代碼審計與安全測試,以防類似情況發生。

ETH1.5%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 7
  • 轉發
  • 分享
留言
0/400
VitaliksTwinvip
· 10小時前
这波归纳还是浪费gas的
回復0
破产倒计时vip
· 10小時前
30w又来个寄哥
回復0
0xLuckboxvip
· 10小時前
又被偷了三十万~智能合约保平安哈
回復0
链上资深吃瓜群众vip
· 10小時前
又是被搞漏洞 傻不傻
回復0
GateUser-0717ab66vip
· 10小時前
30w也好意思提
回復0
Vibes Over Chartsvip
· 10小時前
30w?也就一天交易费
回復0
DeFi宝典vip
· 10小時前
基于数据采样,此类存储漏洞导致损失率高达86.3%,警惕!
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)