Poolzが算術オーバーフロー攻撃を受け、66.5万ドルの損失を被った。複数のチェーンプロジェクトが影響を受けた。

Poolzは算術オーバーフロー攻撃を受け、約66.5万ドルの損失を被りました

最近、複数のブロックチェーンネットワーク上のPoolzプロジェクトが攻撃を受け、大量のトークンが盗まれ、総価値は約66.5万ドルに達しました。この攻撃は2023年3月15日に発生し、Ethereum、BNBチェーン、Polygonなどの複数のネットワーク上のPoolzコントラクトに影響を及ぼしました。

攻撃者はPoolzのスマートコントラクトにおける算術オーバーフローの脆弱性を利用しました。具体的には、問題はCreateMassPools関数内のgetArraySum関数にあります。この関数はプールの初期流動性を計算する際に、整数オーバーフローのために攻撃者がごく少量のトークンを転送するだけで大量の流動性の偽装を作り出すことができました。

! Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました!

攻撃プロセスは以下の通りです:

  1. 攻撃者は最初にあるDEXで少量のMNZトークンを交換しました。

  2. その後、脆弱性のあるCreateMassPools関数が呼び出されました。この関数は、ユーザーが流動性プールを一括で作成し、初期流動性を提供することを可能にします。

  3. 初期流動性金額を計算する際に、getArraySum関数で整数オーバーフローが発生しました。攻撃者が渡した配列の合計がuint256が表現できる最大値を超え、関数の戻り値が1になりました。

  4. しかし、契約はプール属性を記録する際に、元の_StartAmount配列の値を使用しました。これにより、攻撃者が実際には1トークンしか転送していないのに、巨額の流動性を持っていると記録される状況が発生しました。

  5. 最後に、攻撃者はwithdraw関数を呼び出して資金を引き出し、攻撃を完了しました。

! Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました!

この事件は、スマートコントラクトにおける算術オーバーフローの危険性を暴露しました。同様の問題を防ぐために、開発者はより新しいバージョンのSolidityコンパイラを使用することを検討すべきです。これらは自動的にオーバーフローのチェックを行います。古いバージョンのSolidityを使用しているプロジェクトには、OpenZeppelinのSafeMathライブラリを使用して整数演算を処理し、オーバーフローのリスクを回避することができます。

! Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました!

今回の攻撃は、スマートコントラクトの開発と監査において、算術操作の安全性に特に注意を払う必要があることを再強調しました。同時に、プロジェクト側も定期的にセキュリティ監査を実施し、潜在的な脆弱性を迅速に発見・修正してユーザー資産の安全を守るべきです。

! Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました!

原文表示
このページには第三者のコンテンツが含まれている場合があり、情報提供のみを目的としております(表明・保証をするものではありません)。Gateによる見解の支持や、金融・専門的な助言とみなされるべきものではありません。詳細については免責事項をご覧ください。
  • 報酬
  • 6
  • 共有
コメント
0/400
OnChainDetectivevip
· 7時間前
この攻撃パターンを前に見たことがある... ルーキーの整数オーバーフローのミス。開発者たちはいつ安全な数学を使うことを学ぶのだろう、ため息。
原文表示返信0
AirdropGrandpavip
· 7時間前
またスタックオーバーフローか、本当にダメだな
原文表示返信0
CryptoSurvivorvip
· 7時間前
このような小さな抜け穴が見つかるとは、本当に小さな利益のためにあくせくしている。
原文表示返信0
FrogInTheWellvip
· 7時間前
またオーバーフローですか...セキュリティ監査について理解していますか?
原文表示返信0
AlwaysAnonvip
· 7時間前
また一つのプロジェクトが休止しました
原文表示返信0
HodlTheDoorvip
· 7時間前
また無料で十分に楽しむことなく倒産してしまった。
原文表示返信0
いつでもどこでも暗号資産取引
qrCode
スキャンしてGateアプリをダウンロード
コミュニティ
日本語
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)