瞬態ストレージの脆弱性がイーサリアムプロジェクトに30万ドルの攻撃をもたらす。セキュリティチームが重要な詳細を解析。

robot
概要作成中

瞬態ストレージの脆弱性が引き起こした30万ドルのオンチェーン攻撃事件分析

2025年3月30日、あるイーサリアムオンチェーンのレバレッジ取引プロジェクトが攻撃を受け、30万ドル以上の資産損失が発生しました。セキュリティチームはこの事件について詳細な分析を行い、以下の結果を共有します。

背景

Solidity 0.8.24バージョンは、瞬态存储(transient storage)機能を導入しました。これは新しいデータストレージ位置です。その主な特徴には以下が含まれます:

  1. 低gasコスト:TSTOREとTLOAD操作のgasコストは固定で100です。
  2. 取引中の永続性:データは、取引の全期間にわたって有効なままです。
  3. 自動クリア:取引終了後、一時ストレージは自動的にゼロにリセットされます。

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

攻撃の理由

今回の事件の根本的な原因は、関数内でtstoreを使用して一時的に保存された値が関数呼び出し終了後にクリアされなかったことです。攻撃者はこの特性を利用して特定の悪意のあるアドレスを構築し、権限チェックを回避してトークンを転送しました。

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

攻撃ステップ

  1. 攻撃者は2つの悪意のあるトークンAとBを作成し、あるDEXでこれらのトークンのプールを作成して流動性を注入します。

  2. 攻撃者はVaultコントラクトのinitialize関数を呼び出し、Aトークンを担保トークン、Bトークンを債務トークンとしてレバレッジ取引市場を作成します。

  3. 攻撃者はVaultコントラクトのmint関数を呼び出し、債務トークンBを預け入れてレバレッジトークンを鋳造します。この過程で、DEXプールのアドレスが初めて一時的に保存されます。

  4. DEXプールが交換操作を行うと、VaultコントラクトのuniswapV3SwapCallback関数がコールバックされます。この関数はtloadを使用して一時ストレージから値を取得し、呼び出し元の身元を検証し、鋳造された数量を二度目の一時ストレージに保存します。

  5. 攻撃者は、2回目の一時的ストレージの値と同じアドレスを持つ悪意のあるコントラクトを作成します。

  6. 攻撃者はこの悪意のあるコントラクトを通じてVaultコントラクトのuniswapV3SwapCallback関数を直接呼び出してトークンを引き出します。瞬時ストレージ内の値がクリアされていないため、認証が誤って通過してしまいます。

  7. 最後に、攻撃者はコントラクト(Aトークン)を攻撃してVaultコントラクトのuniswapV3SwapCallback関数を呼び出し、Vaultコントラクト内の他のトークン(WBTCやWETHなど)を転送して利益を得ます。

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

! 致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗

資金の流れの分析

オンチェーンのマネーロンダリングおよび追跡ツールの分析によると、攻撃者は約30万ドルの資産を盗みました。これには、

  • 17,814.8626ドルc
  • 1.4085 WBTCの
  • 119.871 ウェス

その後、攻撃者はWBTCとUSDCをWETHに交換し、合計193.1428 WETHがある混合ツールに転送されました。攻撃者の初期資金は、その混合ツールから転送された0.3 ETHに由来します。

! [致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗](https://img-cdn.gateio.im/webp-social/moments-904133c007422770dd55372438c3d257.webp0192837465674839201

! [致命的な残留物:一時的なストレージによって引き起こされた300,000ドルのオンチェーン強盗])https://img-cdn.gateio.im/webp-social/moments-c2206fe20197a3835ddb92319314e4eb.webp(

セキュリティアドバイス

  1. プロジェクトチームはビジネスロジックに基づいて、関数呼び出し終了後に直ちにtstore)key、0(を使用して一時ストレージ内の値をクリアする必要があります。

  2. コントラクトコードの監査とセキュリティテストを強化し、同様の脆弱性を回避する。

  3. 新しく導入された機能を慎重に使用し、その潜在的なリスクを十分に理解してください。

  4. 複数の認証メカニズムを構築し、単一の認証方法にのみ依存しないようにしてください。

  5. 定期的にセキュリティ評価と脆弱性スキャンを実施し、発見された問題を迅速に修正します。

今回の攻撃事件は、ブロックチェーンプロジェクトが新しい技術の特性を使用する際に特に慎重である必要があることを再度強調するとともに、継続的なセキュリティ監査の重要性を浮き彫りにしました。開発者は常に最新のセキュリティベストプラクティスに注目し、コードの実装において厳格に遵守すべきです。

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 7
  • 共有
コメント
0/400
DegenWhisperervip
· 07-16 00:47
カモにされるの日がまた始まりました
原文表示返信0
PensionDestroyervip
· 07-16 00:47
30wは再び潤った
原文表示返信0
AirDropMissedvip
· 07-16 00:43
また人をカモにされました
原文表示返信0
ruggedNotShruggedvip
· 07-16 00:37
視野が狭くなった。今のこの攻撃は何でもない。
原文表示返信0
SillyWhalevip
· 07-16 00:28
また小さなプロジェクトがカモにされました。
原文表示返信0
RugPullAlarmvip
· 07-16 00:21
また別の契約がきちんと処理されずに暴露された
原文表示返信0
SwingingLittleLeekvip
· 07-16 00:19
最近イーサリアムは3000+の上で推移しています!今後は3000+以上に行くでしょう
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)