SplashのエクスプロイトでCardanoのADA/OADAプールが枯渇

SplashはStableSwapバリデータの欠陥により攻撃者が約243万ADAと約199万OADAを引き出したと説明。OADAの流動性が消失した後、Optim Financeはプロトコルを一時停止した。

By SongMarketCap

Updated:

Cardano News - SplashのエクスプロイトでCardanoのADA/OADAプールが枯渇

Splash Protocolは9月13日に攻撃者がADA/OADA StableSwapプールをどのように枯渇させたかを説明する技術報告書を公開した。

その後、Optim Financeはプロトコルを一時停止し、自ら管理下にある残余流動性を撤去するとともに、通常の経路ではOADAをADAにスワップし直せなくなったとユーザーに警告した。

Splashによれば、他の種類のプールに影響はなかった。このインシデントはアプリケーションレベルのスマートコントラクト基盤の中で発生し、Cardanoネットワーク自体は侵害されていない。

StableSwapバリデータはどのように悪用されたか

脆弱性はSplashのstableFnPoolT2tバリデータにあり、二資産のADA/OADA StableSwapプールを制御していた。

このバリデータは、プールの総残高から累積したプロトコル手数料を差し引くことで取引可能準備金を計算していた。しかし、算出後の準備金が正の値のままであることを検証していなかった。さらに、プロトコル手数料の増加に対する十分な上限がなく、一方の資産がプールに入りもう一方が出るという想定されたスワップの方向も強制していなかった。

攻撃者は不足していたこれらの制御を二つのトランザクションにわたって悪用した。

最初のトランザクションはUTCの00時47分36秒に実行され、攻撃者は9,870 ADAとごく少量のOADAを預け入れた。ADAのほぼ全額がプロトコル手数料として記録され、プールの取引可能なADA準備金にはlovelaceが一単位だけ追加された。

45秒後、二つ目のトランザクションにより算出された取引可能なADA準備金はゼロ未満に押し下げられた。StableSwapの不変式が負の準備金で評価されたため、バリデータはプールからADAとOADAの双方を取り出すトランザクションを受け入れてしまった。

エクスプロイトの間、LPトークンの発行や焼却は行われず、LPトークン供給量は不変だった。

Splashは、二つの追加保護のいずれかがあれば攻撃は防げたと述べた。取引可能準備金が正の値を維持することの要件、または累積プロトコル手数料の変化に上限を設けることだ。

報告書は、実行されたスワップ分岐が過去に監査されたコードと一致していたことも指摘している。2024年の監査では、攻撃に利用されたプロトコル手数料、正の準備金、スワップ方向に関するチェックの欠如は特定されなかった。

このプールがOADAにとって重要だった理由

OADAはOptim Financeが開発したADA連動の合成資産である。ユーザーはADAを預け入れてOADAをミントできるが、OADAをADAに直接償還する仕組みは用意されていない。

その代わり、通常はSplash上のADA/OADA StableSwapプールを通じて退出する。このプールはまた、OADAをADAペグに近づけるために流動性を調整するOptimのAlgorithmic Market Operationも支えていた。

公式のインシデント報告は、エクスプロイトの原因をSplashのバリデータに帰している。OptimのAMOに脆弱性を見いだしたり、本件をOptimのコントラクトへのハックと表現したりはしていない。

Splashのプールが枯渇したことで、OADAの主要な退出経路とペグ維持に用いられていた市場が失われた。

その後、攻撃者は引き出したOADAをMinswap V2のOADA/FLDTプールで売却した。このスワップで約563,073 FLDTを得て、のちに約115,323 ADAに交換した。

Optimは、攻撃者が他の取引会場からもOADAの流動性を空にしたと報告した。これらのプロトコルは同じバリデータの欠陥によって侵害されたわけではない。主要なSplashプールがすでに枯渇した後に、それらの市場が影響を受けた。

今後の見通し

Optimは、プロトコルを一時停止し、利用可能な流動性をすべて撤去したと述べた。OADAやOptimのガバナンストークンOに流動性を提供している者に対し、直ちに引き揚げるよう指示し、新たなOADAの流動性ポジションを作成しないよう警告した。

一時停止が全てのプロダクトやモジュールを対象とするのか、OADAに関連するオペレーションのみに限定されるのかについて、Optimは明確にしていない。

Splashは影響を受けたStableSwapのコードに脆弱性があるとマークし、取引所の入金システムに関連するアドレスへ送られた資金の追跡を進めている。チームは、KuCoinおよびGate.ioにトランザクション情報を連絡する予定だと述べた。

またSplashは、報奨金の支払いとそれ以上のエスカレーションなしを含むホワイトハット的な解決を通じて資金を返還するよう、攻撃者に呼びかけた。

現時点で返還が公に確認された資金はない。補償プログラム、回収のタイムライン、修正済みバリデータのリリースについて、SplashもOptimも発表していない。