Aave v3のFlashLoopAdapterに関するセキュリティインシデント
Aave v3のレバレッジポジションを管理するために使用されるカスタムFlashLoopAdapterがEthereumで悪用され、攻撃者がモジュールのアクセス制御を回避した結果、2つのSafeウォレットが約30万5000ドルの損失を被りました。
ブロックチェーンセキュリティ企業SlowMistによると、攻撃者はFlashLoopAdapterコントラクトの認証の欠陥を利用し、偽のSafeがモジュールへのアクセスを制限するためのチェックを通過できるようにしました。
攻撃の詳細
攻撃者は、影響を受けたウォレットが保持するポジションを操作するためにモジュールを使用した後、約114.09 ETHを保持しました。SlowMistは、TI Alert v3 Loop Safe Module Lossを約114.09 ETHとし、根本原因はFlashLoopAdapterのオープン/クローズアクセス制御がISafe(msg.sender).isModuleEnabled(address(this))のみをチェックし、常に真を返す偽のSafeを通過可能であったことにあると指摘しています。
この事件は、Aaveのコアv3プロトコルではなく、Aaveの上に構築されたカスタムコントラクトに関与していました。Defimon Alertsは、10月1日15:08:57 UTCに攻撃を検出し、Aave v3自体は影響を受けていないと述べました。
FlashLoopAdapterの機能と脆弱性
FlashLoopAdapterは、モジュールを有効にしたSafeのためにAave v3のレバレッジループを開閉するSafeモジュールです。オープン/クローズは、任意のmsg.senderを信頼します。SlowMistによると、脆弱性はアダプターのオープンおよびクローズ機能で使用されるアクセス制御に見つかりました。
呼び出し元が正当なSafeであることを独立して確認する代わりに、関数はISafe(msg.sender).isModuleEnabled(address(this))が真を返すかどうかをチェックしました。
攻撃者は、FlashLoopAdapterがチェックを行う際に真を返すようにプログラムされた偽のSafeコントラクトを展開することができました。偽のSafeがそのテストを通過すると、攻撃者は認可されたウォレットに制限されるべき機能にアクセスできるようになりました。
攻撃の結果と影響
Defimon Alertsは、コールバック中に実行されたチェックがトランザクションを停止しなかったと述べました。攻撃者は、通常のスワップルーターを提供する代わりに、ルーターを被害者のSafeウォレットの1つに設定しました。calldataは、モジュールがトランザクションを実行できるSafe機能であるexecTransactionFromModuleを呼び出すように設定されました。
FlashLoopAdapterはすでに被害者のSafeによって有効化されていたため、結果として得られた呼び出しは受け入れられました。攻撃者は、約1306 weETHを攻撃者が制御するアドレスに引き出しました。2つ目のSafeは、同じ脆弱なモジュールを通じてさらに6.4 weETHを失いました。
Defimonによると、影響を受けた両方のSafeは同じ単一の所有者を共有していました。
結論
SlowMistはこの事件をスマートコントラクトの脆弱性として分類し、結果として生じた損失を30万5000ドルと推定しました。Aaveの創設者兼CEOであるStani Kulechovは、影響を受けたコントラクトはAaveの上に構築されたサードパーティの外部アダプターであり、「Aave v3にはゼロの影響がある」と述べました。