Ethereumプロジェクトが30万ドルの攻撃を受け、一時的なストレージの欠陥が主な原因となる

robot
概要作成中

瞬時ストレージの欠陥によりEthereumプロジェクトが30万ドルの攻撃を受ける

2025年3月30日、あるセキュリティ監視システムがEthereumチェーン上のレバレッジ取引プロジェクトが攻撃を受け、30万ドル以上の資産が損失したことを監視しました。セキュリティチームはこの事件の分析を行い、結果を以下の通り共有します:

背景

Solidity 0.8.24バージョンは瞬間ストレージ(transient storage)機能を導入しました。これは新しいデータストレージの場所です。その核心的な特徴は、データが現在のトランザクション実行中のみ有効であり、トランザクションが終了すると自動的にクリアされることです。アクセスと変更はTSTOREとTLOADの2つの新しいEVM命令を通じて実現されます。

瞬時ストレージには以下の特徴があります:

  • 低ガスコスト:TSTOREとTLOADのガスコストは固定で100です。
  • 取引内の持続性:データは取引全体の間有効に保たれます
  • 自動クリア:取引終了後に自動的にゼロにリセット

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

脆弱性の原因

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

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

攻撃プロセス

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

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

  3. 攻撃者はVault契約のmint関数を呼び出し、債務トークンBを預けてレバレッジトークンAPEを鋳造します。この過程で、DEXプールのアドレスと鋳造数量が順次一時保存されます。

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

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

  6. 最後に、攻撃者は攻撃契約(Aトークン)を通じてVault契約のコールバック関数を呼び出し、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ドルのオンチェーン強盗

マネーフロー分析

オンチェーン分析によると、攻撃者は約30万ドルの資産を盗み、17,814.8626 USDC、1.4085 WBTC、119.871 WETHを含んでいます。

  • WBTCは63.5596 WETHに交換されました
  • USDCは9.7122 WETHに交換されました
  • 193.1428 WETHがある混合通貨サービスに転送されました

攻撃者の初期資金は、あるミキシングサービスから送られた0.3 ETHに由来しています。

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

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

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

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

まとめと提案

今回の攻撃の核心は、一時的なストレージを利用して、取引の期間中に値を保持する特性を利用し、コールバック関数の権限検証を回避したことです。プロジェクトチームは、ビジネスロジックに基づいて、関数呼び出しが終了した後に直ちにtstore)key, 0(を使用して、一時的なストレージ内の値をクリアすることをお勧めします。また、同様の事態を避けるために、契約コードの監査とセキュリティテストを強化する必要があります。

原文表示
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • 報酬
  • 4
  • 共有
コメント
0/400
ZKProofEnthusiastvip
· 50分前
小さなプロジェクトが厳しいですね
原文表示返信0
CommunitySlackervip
· 18時間前
また一つ、引き出し機になったプロジェクト
原文表示返信0
BlockchainDecodervip
· 19時間前
技術的な観点から見ると、これは典型的な一時的ストレージの誤用です。
原文表示返信0
StealthMoonvip
· 19時間前
また一時保存の脆弱性ですか?気を引き締めてください。
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)