Back to Blog

CVE-2021–39137 野外漏洞利用簡析

Code Auditing
August 28, 2021
2 min read

CVE-2021-39137 是一個幾天前被回報並修復的漏洞。然而,並非所有以太坊節點都已套用此修補程式。我們觀察到該漏洞已被一筆惡意交易利用。

攻擊交易

https://tx.blocksecteam.com/tx/0x1cb6fb36633d270edefc04d048145b4298e67b8aa82a9e5ec4aa1435dd770ce4

此交易包含一個位址為 0x4 的 STATICCALL。這是一個預編譯的智慧合約 dataCopy。其參數如下:

inOffset = 0, inSize = 32, retOffset = 7 且 retSize = 32。

0x4 智慧合約

圖 1

由於 STATICCALL 的目標是 0x4 預編譯合約,它將執行圖 1 中的 RunPrecompiledContract 函式。

圖 2

圖 3

根據圖 2/3,0x4 智慧合約僅僅是回傳了 in 指標的參考。

圖 4

圖 5

圖 4 是操作碼 STATICCALL 的程式碼。在第 751 行,args 指向 EVM 記憶體的 [inOffset ~ inOffset + inSize],即 Mem[0:32]。

根據圖 5 以及對 0x04 程式碼邏輯(圖 2/3)的分析,回傳值 (ret) 是與 args 相同記憶體的參考。也就是說,它也指向 Mem[0:32]。

漏洞

在該漏洞程式碼(版本 1.10.7)中,第 762 行將 ret 的內容複製到 Mem[retOffset : retOffset + retOffset],即將 Mem[0:32] 複製到 Mem [7:7+32]。此操作意外地更改了 ret 的內容。這意味著 0x4 預編譯合約的回傳值已被修改。

在修復後的版本(1.10.8)中,它對 ret 進行了複製(第 766 行)。這解決了該漏洞,因為第 767 行的複製操作無法修改 ret 的內容。

CVE-2021–39137 漏洞因節點未及時更新修補程式而遭到惡意交易利用。此缺陷涉及以太坊虛擬機器記憶體操作中的瑕疵,但已在版本 1.10.8 中修復。為確保系統安全,建議所有以太坊節點立即更新至最新版本。

貢獻者

此攻擊分析由 Siwei Wu, Yufeng Hu, Lei Wu, Yajin Zhou@BlockSec 完成

Sign up for the latest updates
電子報 - 2026年6月
Security Insights

電子報 - 2026年6月

本月報告涵蓋2026年6月三起最大安全事件,確認損失合計約2200萬美元。一次精密蜜罐攻擊利用未受檢查的代幣授權,從JaredFromSubway的MEV機器人抽走約1500萬美元。兩個舊版Aztec rollup部署因證明結算邊界漏洞損失約435萬美元。SecondFi的Ed25519實現缺陷暴露錢包私鑰,導致374個錢包共損失約240萬美元。三起事件共同模式:表面完整但從未真正執行的安全保證。

~$400萬損失:Taiko、SecondFi遭攻擊 | BlockSec週報
Security Insights

~$400萬損失:Taiko、SecondFi遭攻擊 | BlockSec週報

本週區塊鏈安全報告涵蓋2026年6月22-28日兩起重大事件,以太坊和Cardano確認損失約410萬美元。Taiko橋接漏洞結合了外洩的SGX飛地簽名密鑰與不完整的認證策略,未能拒絕調試飛地,使攻擊者註冊惡意證明者並偽造L2狀態證明。SecondFi錢包漏洞源於Ed25519隨機數派生中的密碼學實現缺陷,移除了秘密輸入,可從Cardano公開交易數據離線恢復私鑰。

~$18M損失:jaredFromSubway、Aztec及更多 | BlockSec每週快報
Security Insights

~$18M損失:jaredFromSubway、Aztec及更多 | BlockSec每週快報

本週區塊鏈安全報告涵蓋2026年6月15日至21日,以太坊與BNB Chain共發生3起重大事件,總損失約1830萬美元。重點分析兩起事件:jaredFromSubway事件揭示反向授權攻擊模式——MEV機器人主動將資產授權給不可信第三方合約套利,攻擊者構造假包裝代幣與交易池,發出真實事件但從未消耗授權額度,損失約1500萬美元。Aztec三日內第二次漏洞:逃生艙ZK電路中`old_data_root`兩個見證值缺少相等約束,致使攻擊者可用偽造Merkle樹證明虛假票據所有權並通過鏈上驗證。

Best Security Auditor for Web3

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

BlockSec Audit