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 版本中修复。为确保系统安全,建议所有以太坊节点立即更新到最新版本。

致谢

本次攻击由 BlockSec 的 Siwei Wu, Yufeng Hu, Lei Wu, Yajin Zhou 分析。

Sign up for the latest updates
COLDCARD事件:当钱包的"随机"助记词并不随机
Security Insights

COLDCARD事件:当钱包的"随机"助记词并不随机

COLDCARD固件存在静默构建集成漏洞,导致比特币种子生成回退至软件随机数生成器,弱随机性使钱包种子可被离线恢复。由于漏洞存于种子本身,固件更新无法修复;截至2026年8月7日,已核实损失达1,405 BTC(约9100万美元),私下估计高达2,055 BTC。

~$8800万损失:COLDCARD与LULA漏洞利用事件 | BlockSec周报
Security Insights

~$8800万损失:COLDCARD与LULA漏洞利用事件 | BlockSec周报

2026年7月27日至8月2日,两起安全事件共造成约8800万美元损失。COLDCARD硬件钱包固件存在熵值缺陷:构建守卫仅检查RNG配置宏是否存在而非是否启用,导致种子生成回退至确定性软件路径,攻击者借此恢复受影响种子并分批盗取至少1370枚BTC(约8800万美元)。BNB链上LULA代币因业务逻辑漏洞损失约57.8万美元,攻击者触发特权函数`recycle()`,从PancakeSwap V2池提取LULA并重置储备,耗尽流动性。

通讯简报 - 2026年7月
Security Insights

通讯简报 - 2026年7月

2026年7月,三起最大DeFi事件共造成约6790万美元损失,涉及Arbitrum和Solana。AFX Trade因供应链攻击导致验证者签名权被盗,损失约2415万美元;Ostium的OLP金库因预言机基础设施被攻破,攻击者提交恶意价格,损失约2375万美元;BonkDAO攻击者花费440万美元获取足够投票权,通过恶意国库转账提案,损失约2000万美元。三起事件均表明协议安全边界远超智能合约代码本身。

Best Security Auditor for Web3

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

BlockSec Audit