
序文
2022 年 6 月 8 日(北京時間)、Chuangyu ブロックチェーン セキュリティ ラボを知るChuangyu ブロックチェーン セキュリティ ラボを知る"Public depositFromOtherContract"権限管理問題が攻撃され、損失額は7,475 BNB、総額約216W USDとなった 現在、DEXを介して70W USDと交換されたETHはCelerを介してイーサリアムにクロスチェーンされている 2,000 BNBはBSC-Tornadoを使用して混合されており、残りの 3,000 BNB は攻撃者のアドレスにあります。
Chuangyu ブロックチェーン セキュリティ ラボを知るできるだけ早くこのインシデントを追跡調査し、分析してください。
基本情報
基本情報
攻撃されたコントラクト: 0x0288fba0bf19072d30490a0f3c81cd9b0634258a
攻撃者のアドレス: 0xB2C035eee03b821cBe78644E5dA8B8eaA711D2e5
tx:0xfffd3aca0f53715f4c76c4ff1417ec8e8d00928fe0dbc20c89d875a893c29d89
GymSinglePool プロキシ契約: 0xa8987285e100a8b557f06a7889f79e0064b359f2
脆弱性分析
脆弱性分析
GymSinglePool 契約の実装プロセス中、プロジェクト パーティには 0x0288fba0bf19072d30490a0f3c81cd9b0634258a#depositFromOtherContract 関数の権限制御がありません。これにより、攻撃者がこの関数を通じて内部 _autoDeposit 関数を呼び出してゼロ消費誓約を達成することができます。
ユーザーに公開されるべきプレッジの内部関数は、次の図に示すように、トークンの承認を実装する _deposit 関数です。"対応する _autoDeposit 関数は次のように実装します。"プレッジ、つまりプレッジのためにトークンを転送する必要はありません。同時に、この機能はユーザーに直接公開されます。機能の比較は次のとおりです。
攻撃プロセス
攻撃プロセス
オンチェーン MEV とプリエンプティブ ロボットを防ぐために、攻撃者はコントラクトを段階的にデプロイおよび実行し、同時に複数回デプロイおよび呼び出しを行って、GymNetwork コントラクト (0x3a0d9d7764FAE860A659eb96A500F1323b411e68) の GYMNET トークンの完全な抽出を完了しました。 、およびデプロイメント呼び出しの 1 つ たとえば、次のようになります。"1. コントラクトをデプロイした後、depositFromOtherContract を呼び出します。"特権
Pledge、0xfd4a2266 メソッドに対応:
内部通話の詳細は次のとおりです。
2. 0x30649e15 に電話して、以前の特権誓約のトークンの撤回を実現します。
3. 0x1d111d13 関数を使用して、取得した GYM-Token を販売します。"何度も繰り返す"特権
誓約、撤回、販売の手順で、攻撃者は最終的に 7475 BNB を取得しました。
攻撃者は、フロントランニングを抑制するために、プレッジの追加ステップと撤退ステップを分離し、両方のステップが核となる操作であると同時に、一部のステップを追加する際のガス価格を意図的に 15/20gwei に引き上げました。意図的にやったのです。
トレーサビリティ
この攻撃の原因は、プロジェクト当事者が実装した特権機能の権限制御が不適切であったためであり、攻撃発覚から1時間後、プロジェクト当事者はGymSinglePoolプロキシコントラクトのロジックコントラクトを数回修正し、権限制御を追加しました。
そして、20 分後に緊急アカウント破棄関数をロジック コントラクトに追加します。
プロジェクト パーティの Deployer アドレス分析については、追跡によると、プロジェクト パーティによってデプロイされた複数の GymSinglePool コントラクトには、2 日前にデプロイされた GymSinglePool コントラクトにのみ抜け穴があり、4 日前のコントラクトにはこの機能がありません。
攻撃者の金銭的準備 (トルネードより) は約 6 時間前であり、攻撃者の身元も考慮する価値があります。
要約する
要約する