Back to Blog

CVE-2021–39137 の悪用に関する短報

Code Auditing
2021年8月28日
2 min read

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

攻撃トランザクション

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の脆弱性は、ノードがタイムリーにパッチを更新しなかったために、悪意のあるトランザクションによって悪用されました。この欠陥は、Ethereum仮想マシンのメモリ操作における不具合が原因でしたが、バージョン1.10.8で修正されています。システムのセキュリティを確保するため、すべてのEthereumノードは速やかに最新バージョンにアップデートすることを推奨します。

謝辞

攻撃の分析は、Siwei Wu、Yufeng Hu、Lei Wu、Yajin Zhou@BlockSec

Sign up for the latest updates
BitgetのオフチェーンでのUSD 3億8,750万ドル流出:鍵とコントラクトを超えて
Security Insights

BitgetのオフチェーンでのUSD 3億8,750万ドル流出:鍵とコントラクトを超えて

2026年9月24日、攻撃者がサードパーティ製セキュリティ製品の脆弱性を悪用し内部認証情報を取得、出金命令を偽造。Ethereum、他のEVMネットワーク、XRP Ledger、Zcash、TRON上のBitget運用ウォレットから約3億8750万ドルが流出。秘密鍵とコールドウォレットは無事。本稿は攻撃経路と資金フロー、即時換金とエコシステムの回復対応を整理し、組織向けの体系的な多層防御策を提案、認可済みブロックチェーン侵入テストによる層間検証手法を解説する。

約1,130万ドル(11.3M)の損失:Multicall Router、Nostra | BlockSec Weekly
Security Insights

約1,130万ドル(11.3M)の損失:Multicall Router、Nostra | BlockSec Weekly

2026/09/14-20のレポート。Ethereum・Starknetで計約1130万ドル被害の2件を分析。1件目はマルチコールルーターが自身を宛先と誤認し、Safeのゲートウェイがルーターの権限で約2,900 aEthrsETHを攻撃者のUniswap v4プールへ流出。2件目はNostraのオラクルが最小1ソースで集約可能なため、3つ中2ソースの平均値がNSTRを約49.52ドルと過大評価し、約350万ドルの借入を許した。

約3.2億ドル消失:Liquid NetworkとSymbiosisのエクスプロイト | BlockSec
Security Insights

約3.2億ドル消失:Liquid NetworkとSymbiosisのエクスプロイト | BlockSec

本レポート(2026/09/07-09/13)は、約3.2億ドルの損失を招いた2件のセキュリティ事件を検証。前回未報告の9/6 Liquid Networkの脆弱性では、証明キャッシュのキー生成に境界区切りがなく、他出力の検証結果が流用され4,000枚の無担保L-BTCが作成・ペグアウトされた。SymbiosisのBitcoinルートでは、入金者指定のIDを使用し手数料の負値チェックを怠り、330satの入金で466億syBTCが発行され、流動性提供者らに約9.97BTC(約77万ドル)の損失が発生。

Best Security Auditor for Web3

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

BlockSec Audit