Back to Blog

CVE-2021-39137の悪用に関する簡単な分析

Code Auditing
August 28, 2021

CVE-2021-39137 は、数日前に報告され修正された脆弱性です。しかし、すべてのEthereumノードがパッチを適用したわけではありません。この脆弱性が悪意のあるトランザクションによって悪用されていることを確認しました。

攻撃トランザクション

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

このトランザクションは、アドレス0x4に対するSTATICCALLを含んでいます。これはプリコンパイルされたスマートコントラクトdataCopyです。引数は以下の通りです。

inOffset = 0, inSize = 32, retOffset = 7 and 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の脆弱性は、ノードがパッチの更新をタイムリーに行わなかったために、悪意のあるトランザクションによって悪用されました。この欠陥は、Ethereum Virtual Machineのメモリ操作における欠陥を含んでいましたが、バージョン1.10.8で修正されました。システムのセキュリティを確保するため、すべてのEthereumノードは直ちに最新バージョンに更新することを推奨します。

謝辞

攻撃はSiwei Wu, Yufeng Hu, Lei Wu, Yajin Zhou@BlockSecによって分析されました。

Sign up for the latest updates
Building a Secure Stablecoin Payment Network: BlockSec Partners with Morph
Partnership

Building a Secure Stablecoin Payment Network: BlockSec Partners with Morph

BlockSec has partnered with Morph as an official audit partner for the $150M Morph Payment Accelerator. By offering exclusive discounts on smart contract audits and penetration testing, BlockSec provides institutional-grade security to payment builders, ensuring a safe and resilient foundation for the future of global stablecoin payments.

Weekly Web3 Security Incident Roundup | Mar 9 – Mar 15, 2026
Security Insights

Weekly Web3 Security Incident Roundup | Mar 9 – Mar 15, 2026

This BlockSec weekly security report covers eight DeFi attack incidents detected between March 9 and March 15, 2026, across Ethereum and BNB Chain, with total estimated losses of approximately $1.66M. Incidents include a $1.01M AAVE incorrect liquidation caused by oracle misconfiguration, a $242K exploit on the deflationary token MT due to flawed trading restrictions, a $149K exploit on the burn-to-earn protocol DBXen from `_msgSender()` and `msg.sender` inconsistency, and a $131K attack on AM Token exploiting a flawed delayed-burn mechanism. The report provides detailed vulnerability analysis and attack transaction breakdowns for each incident.

Venus Thena (THE) Incident: What Broke and What Was Missed

Venus Thena (THE) Incident: What Broke and What Was Missed

On March 15, 2026, an attacker bypassed the THE (Thena) supply cap on Venus Protocol (BNB Chain) through a donation attack, inflating a collateral position to 3.67x the intended limit and borrowing ~$14.9M in assets. Both sides lost money on-chain: Venus was left with ~$2.15M in bad debt after 254 liquidation bots competed across 8,048 transactions, while the attacker retained only ~$5.2M against a $9.92M investment. This deep dive examines what broke across three lines of defense (exposure limits, collateral valuation, and liquidation) and the monitoring gaps that left months of on-chain warning signals unacted upon.

Best Security Auditor for Web3

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

BlockSec Audit