Back to Blog

週刊Web3セキュリティインシデントまとめ | 2026年2月16日〜2月22日

Code Auditing
February 25, 2026
8 min read

先週(2026年2月16日〜2月22日)、BlockSecは3件の攻撃インシデントを検出し分析しました。推定被害総額は約622万ドルに達します。以下の表にこれらのインシデントをまとめ、各ケースの詳細な分析を後続のセクションで説明します。

日付 インシデント 分類 推定被害額
2026/02/16 Moonwellインシデント 設定ミス 約178万ドル
2026/02/19 PearlDriverインシデント 算術オーバーフロー 約4.03万ドル
2026/02/21 IoTexインシデント 鍵の流出 約440万ドル

1. Moonwellインシデント

概要

2026年2月16日、Base上のMoonwellプロトコルがオラクルの設定ミスを突かれ、約178万ドルの不良債権が発生しました。この問題は、MIP-X43提案の実行中に発生しました。BaseのcbETHオラクルが、ETH/USD価格を組み込んだ複合オラクルの代わりに、誤ってcbETH/ETHの為替レートフィードに割り当てられてしまったのです。これにより、オラクルがcbETHの実際の市場価値である約2,200ドルではなく、約1.12ドルと報告する事態となりました。清算ボットが即座に悪用を検知し、キャップが引き下げられて攻撃が停止されるまでの間に、1,096.317 cbETHを差し押さえ、最小限の負債を返済しました。

背景

Moonwellはマルチチェーン展開するレンディングプロトコルであり、2026年2月16日にMIP-X43という名称の提案を実行しました。この提案は、BaseおよびOptimism上のすべての残りのコア市場および隔離市場において、Chainlink OEV(Oracle Extractable Value)ラッパーコントラクトを有効にすることを目的としており、MIP-X38で有効化された最初の3つのフィードを超えて対象範囲を拡大するものでした。OEVラッパーは、オラクル価格に依存する清算時にプロトコルが価値を捕捉できるように設計されており、同時に清算人が適切にインセンティブを得られるようにしています。

脆弱性の分析

この脆弱性は、ChainlinkOracleConfigs.solコンストラクター内の設定ミスに起因しています。BaseチェーンのcbETHについて、この提案ではオラクルを適切な複合オラクル(当該レートとETH/USD価格を組み合わせるもの)ではなく、"cbETHETH_ORACLE"cbETH/ETH為替レートフィード)として設定していました。OEVラッパーがデプロイされ、ChainlinkOracle上のsetFeed()を通じてフィードとして接続された際、プロトコルはcbETHのUSD価格として生の交換レート(cbETH/ETH ≈ 1.12)を使用し始めました。これにより、報告された価格(約1.12ドル)と実際の市場価値(約2,200〜2,400ドル)の間に重大な乖離が生じ、cbETH担保が約2,200分の1に過小評価されることとなりました。

攻撃の分析

  1. 2026年2月16日午前2時1分(UTC+8)、MIP-X43の実行が完了し、誤設定されたcbETHオラクルがBaseチェーン上で有効化されました。

  2. プロトコルを監視していた清算ボットが直ちに価格の乖離を検知し、cbETH[担保ポジション]に対して清算を実行しました。

  1. 数分以内に1,096.31 cbETHが清算人によって差し押さえられ、影響を受けた市場全体で約178万ドルの不良債権が発生しました。

結論

このインシデントは、最終的にMoonwellのMIP-X43デプロイ時における設定ミスが原因でした。BaseチェーンのcbETHが正しい複合オラクルではなく、cbETH/ETH為替レートフィードと誤って割り当てられていたためです。この設定ミスにより、多額のcbETH担保が迅速に枯渇する事態となりました。

複数のオラクルフィードを管理するプロトコルにとって、各資産が意図した価格ソースにリンクされていることを確認するために、デプロイ前の徹底した検証手順を実装することが極めて重要です。厳格な検証を行うことで、このような甚大な影響を及ぼす誤設定のリスクを大幅に低減できます。


2. PearlDriverインシデント

概要

2026年2月19日、BSC上のPearlDriverのNLAMMボンディングカーブコントラクトが攻撃を受け、約4.03万ドルの損失が発生しました。根本原因はbuy()関数におけるチェックなしの算術オーバーフローであり、攻撃者が極めて大量のゲームトークンをほぼゼロコストでミントし、PearlDEXの流動性プールに投げ売りすることを可能にしました。

背景

PearlDriverは、トークンミントのためにNLAMM(非線形自動マーケットメーカー)ボンディングカーブを利用しています。ユーザーはbuy()関数を通じてゲームのリソーストークンを購入でき、購入にかかるステーブルコインのコストは「コスト = 購入量 × 現在価格」として計算されます。

通常の状態では、この計算式により、必要な支払額は購入数量に直接比例することが保証されます。ボンディングカーブは、購入量が増えるほど必要な支払いも比例して大きくなるという前提に基づいており、これにより価格決定の健全性を維持し、不釣り合いなトークン発行を防いでいます。

脆弱性の分析

根本原因は、ステーブルコインの支払計算における算術オーバーフローでした。buy()関数全体がuncheckedブロックで囲まれており、Solidityの組み込みのオーバーフロー保護が無効化されていました。その結果、購入コストを計算するための乗算処理が、整数型の最大値を超えてもリバート(取り消し)されませんでした。代わりに値がオーバーフローして非常に小さな数値に折り返され、必要な支払額が劇的に減少してしまいました。

その結果、攻撃者はほぼゼロの支払いで大量のトークンをミントし、それを即座にDEXの流動性ペアに投げ売りしてUSDTを枯渇させることができました。

攻撃の分析

攻撃者は1回のトランザクションで、同じ攻撃パターンを使用して5つの資産(IRON ORE, COAL, WOOD, SAND, CLAY)に対して脆弱なbuy()関数を悪用しました。最初の資産を例に挙げます。

  1. 攻撃者はbuy()を呼び出す際、極めて大きな購入量を指定しました。チェックなしの算術演算により、「購入量 × 現在価格」の計算結果がオーバーフローしてほぼゼロの値に折り返され、わずか0.0053 USDT(約0.01ドル未満)の支払いしか要求されませんでした。コストがごくわずかであるにもかかわらず、コントラクトは攻撃者に対して膨大な量のIRON ORE(具体的には7.03 × 10⁵⁸トークン)をミントしました。

  2. 攻撃者はミントしたIRON OREの一部を直ちに該当するPearlDEX流動性ペアとスワップし、7,805.55 USDT(約7,805.56ドル)を獲得しました。

同様のオーバーフローと投げ売りのシーケンスが他の4つの資産に対しても実行され、各資産とUSDTのペアから流動性が抜き取られ、合計で4万ドル以上の利益が生成されました。

結論

このインシデントは、NLAMM buy()関数の価格決定ロジックにおけるチェックなしの算術演算が原因でした。オーバーフローチェックを無効にしたことで、この関数は極端な入力値が支払計算を歪めることを許してしまい、ボンディングカーブモデルの経済的前提を破壊しました。

チェックなしの算術演算は厳密に制御されたシナリオでは適切である可能性がありますが、支払額を直接決定する金融ロジックで使用すると重大なリスクを招く恐れがあります。このようなリスクを軽減するために、開発者はすべての算術演算を慎重にレビューし、特に価格決定や送金に関わるコードパスでは、Solidity 0.8以降の組み込みオーバーフローチェックを無効化することに慎重であるべきです。


3. IoTexインシデント

概要

2026年2月21日、IoTeXのioTubeブリッジが、Ethereumのバリデーターのオーナー権限鍵の流出によりセキュリティ侵害を受けました。攻撃者はバリデーターコントラクトの所有権を取得し、その後TokenSafeおよびMintPoolコントラクトの制御権を奪取して、約440万ドル相当のブリッジ準備金を抜き取り、4億CIOTXトークン以上をミントしました。盗まれた準備金はスワップされ、一部はビットコインにブリッジされました。プロジェクトによると、ミントされたCIOTXトークンのうち約3億5,500万枚が永久的にロックまたは凍結されています。

背景

被害を受けたioTubeは、IoTeX Layer 1とEthereumなどの他ネットワークを接続するIoTeXのクロスチェーンブリッジインフラです。Ethereum側のブリッジアーキテクチャは、クロスチェーン決済メッセージを検証し、下流のミントコントラクトを管理するバリデーターコントラクト(TransferValidatorWithPayload)を中心に構築されています。これには、ブリッジ準備金を保有するTokenSafeや、CIOTXなどの特定のトークンの発行権限を持つMintPoolが含まれます。

脆弱性の分析

根本原因は、バリデーターコントラクトのオーナーの秘密鍵の流出でした。このブリッジはマルチシグやタイムロック制御のない単一のEOA(外部所有アカウント)に依存していたため、この鍵を所持することは完全な管理権限を掌握することを意味しました。攻撃者はコントラクトのupgrade()関数を使用して、TokenSafeおよびMintPoolコントラクトの所有権を攻撃者の管理アドレスに移転しました。これにより、ブリッジ準備金の直接的な引き出しと、大量のCIOTXの不正なミントが可能となりました。

攻撃の分析

  1. Ethereum上のバリデーターコントラクトのオーナー鍵を盗み出し、管理権限を掌握

  2. バリデーターコントラクトを使用して、TokenSafeおよびMintPoolコントラクトの所有権を移転

  1. TokenSafeから約440万ドル相当の準備金資産(USDC、USDT、WBTC、WETH、BUSDなど)を抜き取り、MintPoolを通じて4億CIOTX以上をミントしました。

  2. 盗まれた準備金トークンをスワップし、他チェーンへとブリッジしました。

結論

このインシデントは、教科書的な「単一障害点(Single Point of Failure)」による鍵流出の事例です。Ethereum側ブリッジのセキュリティ全体が、マルチシグ保護もタイムロックによる安全策もない、完全な管理権限を持つ単一のEOAに依存していました。EOAの秘密鍵が流出した時点で、重要なブリッジコンポーネントに対する制御権は実質的に失われました。

このケースは、中央集権的な管理体制のリスクを浮き彫りにし、より強力なガバナンスメカニズムを通じてアップグレード権限や管理権限を分散させることの重要性を強調しています。


About BlockSecについて

BlockSecは、フルスタックのブロックチェーンセキュリティおよび仮想通貨コンプライアンスプロバイダーです。コード監査(スマートコントラクト、ブロックチェーン、ウォレットを含む)、リアルタイムでの攻撃阻止、インシデント分析、不正資金の追跡、AML/CFT義務への対応などを支援する製品やサービスを、プロトコルやプラットフォームのライフサイクル全般にわたって提供しています。

BlockSecは権威あるカンファレンスで複数のブロックチェーンセキュリティ論文を発表し、DeFiアプリの複数のゼロデイ攻撃を報告し、2,000万ドル以上のハッキングを阻止・救出し、数十億ドル規模の仮想通貨を保護してきました。

Best Security Auditor for Web3

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

BlockSec Audit