Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Flash Loan Attack Vector Analysis: Crypto-com

2026年10月27日に「Dev.to」が公開したITニュース「Flash Loan Attack Vector Analysis: Crypto-com」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

Crypto.comのDeFiプロトコルで、フラッシュローン機能にハッキングのおそれがある重大な脆弱性が6つ見つかった。再入可能性やオラクル操作などを悪用し、最大約3.5億ドルもの資産が一度に盗まれる危険があるため、迅速な対策が求められる。

出典: Flash Loan Attack Vector Analysis: Crypto-com | Dev.to公開日:

ITニュース解説

DeFi(分散型金融)の世界では、新しい技術が次々と生まれ、多くのユーザーに利便性を提供している。しかし、その革新的な技術の裏側には、常にセキュリティ上のリスクが潜んでいる。今回は、著名なDeFiプロトコルの一つであるCrypto-comが直面している、特に「フラッシュローン攻撃」という特殊な種類の脅威について詳しく解説する。

フラッシュローンとは、DeFiの世界で使われる、非常にユニークな仕組みの融資である。通常、お金を借りる際には担保が必要だが、フラッシュローンでは担保が一切不要である。その代わり、借りたお金は「同一のブロック内で、借り入れたその瞬間から一連の処理が完了するまでに返済される」という厳格な条件がある。もし指定された期間内に返済できなければ、そのトランザクション自体が無かったことになり、実行されない。この機能は、アービトラージ(価格差を利用した取引)や担保の入れ替えなど、本来であれば多額の初期資金が必要な複雑な操作を、誰でも少ない資金で実行できるようにする点で非常に強力である。しかし、この「同一ブロック内での即時実行性」という特性が、悪意ある攻撃者にとって新たな抜け穴となることがある。攻撃者は初期資金なしで多額の資金を借り入れ、その資金を使ってプロトコルの脆弱性を突くことで、不正な利益を得ようとする。

Crypto-comは、レンディング(貸付)、ボローイング(借入)、流動性提供といった機能を提供し、イーサリアムだけでなくOptimismやArbitrumなどのL2(レイヤー2)ネットワーク全体で23億ドルもの資産を管理する巨大なDeFiエコシステムである。フラッシュローンはその設計に深く組み込まれており、多くのエントリーポイント(入り口となる機能)がフラッシュローンに対応している。今回の分析では、このフラッシュローンが引き起こす可能性のある、6つの重大な攻撃ベクトル(攻撃経路)が特定された。これらの脆弱性が悪用されれば、プロトコルが管理する全資産の最大15%、つまり約3億5千万ドルもの損失が、たった一つのブロック内で発生する危険性があると指摘されている。現在のフラッシュローンの実装におけるリスクスコアは10点中7.4と「高」と評価されており、迅速な対策が求められている。

それでは、具体的にどのような攻撃ベクトルが特定されたのかを見ていこう。

一つ目は「保護されていないコールバックのリエントランシー(再入可能)」である。プロトコルはフラッシュローンを実行した後、借り手(通常は攻撃者)が指定したコード(これをコールバックと呼ぶ)を実行する。問題は、プロトコルがユーザーの残高更新やローン返済の記録を、このコールバックが完了する「後」に行う設計になっている点である。攻撃者はこのコールバックの途中で、再度プロトコルの別の機能(例えば、担保の預け入れや追加の借り入れ)を呼び出すことができる。これは、プロトコルの会計処理が完了する前に、攻撃者が外部のコールバックを通じて再度プロトコルを呼び出し、処理の順序を狂わせることで、データの整合性を破壊する問題である。これにより、預け入れた担保が二重にカウントされたり、本来借りられないはずの資産を借り入れたり、他のユーザーの資産を強制的に清算したりといった不正が可能になる。

二つ目は「オラクル価格の陳腐化ウィンドウ」である。DeFiプロトコルは、資産の価値を判断するために「オラクル」という外部の価格情報源を利用する。フラッシュローンのトランザクションが開始される際、一度だけこのオラクルから価格が取得される。しかし、攻撃者は同一のトランザクション内で、大量の資産を取引することで市場価格を大きく変動させることができる。この時、プロトコルは最初に取得した「古い」価格を使い続けて清算チェックを行うため、攻撃者は実際の価値よりも高く評価された担保を使って、余分な資産を借り入れることが可能になる。攻撃者は、この古い価格の情報を利用して、借り入れや清算を行い、その後、価格を元に戻して利益を得る。

三つ目は「L2間決済の競合」である。イーサリアムのトランザクション処理能力を向上させるL2ネットワーク上で行われたフラッシュローンが対象である。攻撃者はL2でフラッシュローンを実行した後、すぐにその借り入れた資産をL1(イーサリアムメインネット)へ送るためのブリッジ(橋渡し役の機能)を呼び出す。L2のプロトコルは、トランザクションの終わりにローンが返済されたものと仮定して処理を進めるが、L1での資産の受け取りは、L2のブロックが確定するまで数秒間遅れる。このタイムラグを利用して、攻撃者はL1で借りた資産を自由に使い(例えば別のローンを返済したり、中央集権取引所で売却したり)、一方でL2のプロトコルはローンが返済されたと認識しているため、結果的にL2から資産が失われることになる。これは、無料で資産を生成するような状況を生み出す。

四つ目は「ルーターレベルのバッチ呼び出しの悪用」である。プロトコルの「ルーター」と呼ばれるコントラクトは、複数の操作をまとめて一度に実行できる便利な機能を持っている。しかし、このルーターが、呼び出し先のコントラクトを適切に検証せず、許可されたリストに含まれているかどうかをチェックしない場合、攻撃者は悪意のあるコントラクトを呼び出しリストに含めることができる。これにより、プロトコルの中心的なロジックを破壊したり、重要な設定(金利モデルや一時停止機能など)を不正に上書きしたりすることが可能になり、システム全体が機能不全に陥る可能性がある。

五つ目は「清算トリガーの操作」である。DeFiのレンディングプロトコルでは、借り手の担保価値が一定の基準を下回ると、その借り手は「清算」され、担保が売却されてローンが回収される。今回の脆弱性では、フラッシュローンのコールバック実行後に清算チェックが行われるが、ローン返済前というタイミングが問題となる。攻撃者はコールバック内で、標的とするユーザーの担保トークンを一時的に大量に売却し、価格を暴落させることができる。これにより、そのユーザーの健全性指標(返済能力を示す指標)が一時的に閾値を下回り、攻撃者は直ちにそのユーザーの資産を清算し、清算ボーナスを得ることができる。その後、攻撃者は元の価格に戻す取引を行い、ローン返済時には健全性指標が正常に見えるように操作する。これにより、健全なユーザーが不当に資産を失うことになる。

六つ目は「フラッシュローンを使ったガバナンス攻撃」である。多くのDeFiプロトコルは、トークン保有者の投票によって運営方針が決まる「ガバナンス」の仕組みを採用している。ガバナンス投票権は、特定のブロック時点でのトークン保有量に基づいて決定されることがある。攻撃者はフラッシュローンで大量のガバナンストークンを借り入れ、そのトークンを使ってプロトコルのリスクパラメータ(例えば、リスクの高い資産のLTV:担保率を引き下げるなど)を変更する提案に投票し、その後すぐに借りたトークンを返却する。これにより、攻撃者は長期的にトークンを保有することなく、プロトコルの重要な設定を悪意を持って変更し、将来の攻撃経路を作り出すことができる。

これらの重大な脆弱性に対して、Crypto-comは早急な対策を講じる必要がある。推奨される対策には、リエントランシー攻撃を防ぐための「nonReentrantガード」の導入、価格オラクルを常に最新の状態で利用するための「アトミックなオラクルクエリ」、L2とL1間の資産移動のタイムラグを利用した攻撃を防ぐための「ブリッジ決済完了チェック」、ルーターの不正利用を防ぐための「許可リストの導入と呼び出しタイプの厳格化」などが含まれる。また、清算の悪用を防ぐための「清算ガード期間」の導入や、ガバナンス攻撃を防ぐための「ガバナンススナップショットの分離」なども提案されている。

これらの対策は、プロトコルのセキュリティを大幅に向上させ、ユーザーの資産を保護するために不可欠である。DeFiの進化は目覚ましいものがあるが、その裏側にあるコードの安全性と設計の堅牢性こそが、持続的な成長の鍵を握っていると言えるだろう。システムエンジニアを目指す皆さんにとって、このようなDeFiプロトコルの脆弱性分析と対策の知識は、未来のシステム開発において非常に重要なものとなるはずである。

関連コンテンツ

関連IT用語