ソース:Shenzhen ZeroTime Technology
背景
2024年3月5日、我々はアービトラムの連鎖異常取引を監視した。chain anomalous transaction: https://arbiscan.io/tx/0xe80a16678b5008d5be1484ec6e9e77dc6307632030553405863ffb38c1f94266
このトランザクションを分析した結果、WOOFiに対する攻撃であることが判明し、インシデントにより合計約900万ドルの損失が発生しました。
WOOFiは、WOO Networkによって構築されたオールインワンの分散型アプリケーション(DApp)です。WOOFIは、超低スリッページ、競争力のある償還手数料、その他の便利な機能を提供することで、分散型金融(DeFi)のユーザーエクスペリエンスを最適化するように設計されています。
WOOFiユーザーは人気のあるデジタル資産を換金することができ、ネットワークに誓約して流動性を提供することで収益を得る機会があります。WOOFiプラットフォームがDeFiユーザーに生み出す大きな価値提案の1つは、深い流動性です。
攻撃はWOOFiのスワップ契約に対するもので、契約アドレスはhttps://arbiscan.io/address/0xeff23b4be1091b53205e35f3afcd9c7182bf3062#code
攻撃とインシデントの分析
攻撃者は以下の通りです。flashLoanを使用してUniswap、TraderJoeから攻撃用の初期資金を入手し、合計で10504796 USDC.eと2721172 WOO.
その後、攻撃者は借りたUSDC.eをSlio Financeで担保に入れ(合計70,000,000 USDC.eを担保)、509,266,3 WOO.を貸し出しました。
その後、攻撃者は残りのUSDC.eを使ってWOOFiのスワップ機能でWOOに変換し、WOOの価格をつり上げた。
3回のスワップ操作の後、WOOの価格は56884100から60400479に引き上げられました。60400479まで引き上げられ、その後の攻撃の条件が整いました。
実際の攻撃は、攻撃者がWOOをUSDC.eに交換したときに起こりました。
この交換の後、WOOの価格が7、つまり0.00000007 USD.になったことがわかります。以前の価格と比べて862万倍に急落しています。
契約コードを調べたところ、WOOFi契約において、BaseTokenとQuoteTokenを交換する際のデータ処理に欠陥があることがわかりました。
QuoteTokenを得るためにBaseTokenを売却することを見てみましょう。BaseToken 価格の計算
newPrice = (1 - 2 * k * oracle.price * baseAmount) * oracle.price
kの値は変わらないので、攻撃者はoracle.priceとbaseAmountを操作できます。攻撃者はBaseTokenの価格であるoracle.priceを操作でき、複数回スワップすることでbaseAmountを操作できます。この式から、newPriceはoracle.priceより小さくなければならないことがわかります。したがって、攻撃者はoracle.priceとbaseAmountの組み合わせをコントロールして、newPriceを極端に低くすることができる。
最後に、攻撃者は少量のUSDC.eを使って大量のWOOを換金し、ローン元本を返してキャッシュアウトします。
2日後、WOOFi関係者は攻撃者と連絡を取り、ホワイトハット・ボーナスとして10%を提供した。
2日後、WOOFiの職員は攻撃者と連絡を取り、ホワイトハットのボーナスとして10%を提供しました。
その後、この問題は公式に修正されました。要素を削除することでした。https://github.com/woonetwork/WooPoolV2/commit/f5fe28acc77cf3801ac379db9bf99bb61b73ba17
概要
この脆弱性の原因は、経済モデルの計算に抜け穴があることで、攻撃者は以下を行うことができます。攻撃者は売買価格の数をコントロールすることができるため、トークン価格が大幅に縮小し、最終的に攻撃者がプロジェクト当事者のWOOトークンをごく少額のUSDC.e.で空にすることにつながります。プロジェクト・オーナーは、経済モデルの設計とロジックを実行するコードを検証し、本稼働前に契約を相互監査する複数の監査会社を選択するよう努めることをお勧めします。