返回部落格

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

Code Auditing
2021年8月28日
閱讀約 2 分鐘

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 完成

訂閱最新動態
NEAR Intents 遭攻擊:退款漏洞與資安教訓
Security Insights

NEAR Intents 遭攻擊:退款漏洞與資安教訓

NEAR Intents 遭到攻擊時,攻擊者利用金額過大的退款事件,在存入的資產退回後仍保留內部餘額。本文分析重建回執流程及 BNB Chain 上合計 3,865,021 USDT 的七筆出金,將這些資金流出與專案方所稱的資金全數追回區分開來,並概述開發及審計 NEAR 智能合約時應注意的安全事項。

損失約 557萬 USD:X100 Freezer、NEM 遭攻擊 | BlockSec 週報
Security Insights

損失約 557萬 USD:X100 Freezer、NEM 遭攻擊 | BlockSec 週報

本週報涵蓋 2026年10月19日–2026年10月25日 期間發生在 Ethereum 和 BNB Chain 上的兩起安全事件。報告分析了以閃電貸提供資金、奪取 X100 Freezer 治理權的事件,以及影響 BNB Chain 上某個 NEM 代幣流動性池的稅費結算缺陷。報告範圍內的估計損失合計約 557萬 USD:具代表性的 X100 交易造成約 475萬 USD 的損失,NEM 流動性池事件造成約 82.0萬 USD 的損失。此合計金額不包含另行報導的後續 X100 資金提取。

損失約 387萬 USD:Autheo Network、UNCX 遭駭|BlockSec 週報
Security Insights

損失約 387萬 USD:Autheo Network、UNCX 遭駭|BlockSec 週報

本週報告涵蓋 2026年10月12日–2026年10月18日 期間的 3 起安全事件,估計總損失約為 387萬 USD。Autheo Network 因私鑰遭入侵損失約 176萬 USD;Qubic Wallet 因種子產生機制薄弱損失約 130萬 USD;UNCX Network 的 Smart Token Vesting V2 合約在 Ethereum、BNB Chain、Base 和 Robinhood Chain 上因帳務計算錯誤造成約 80.7萬 USD 的損失。重點分析的 UNCX 事件說明,有缺陷的份額總計計算如何將以不同代幣與份額比率建立的代幣歸屬批次混在一起,進而使人得以從共用資金池超額提領。

Web3 最佳安全審計方

在上線之前驗證設計、程式碼與業務邏輯,對標業內最高安全標準。

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