# Poolzが算術オーバーフロー攻撃に遭遇し、約66.5万ドルの損失最近、Poolzに対する攻撃事件がEthereum、Binance Smart Chain、Polygonネットワーク上で発生しました。オンチェーンデータの監視によると、攻撃は2023年3月15日午前3時16分(UTCに発生しました。この攻撃には、MEE、ESNC、DON、ASW、KMON、POOLZなどのさまざまなトークンが関与しており、総損失は約66.5万ドルです。! [Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました! ])https://img-cdn.gateio.im/social/moments-974bc1b1f017458e935bb53bf55cef3e(攻撃者はPoolzスマートコントラクトの算術オーバーフロー脆弱性を悪用しました。具体的には、問題はCreateMassPools関数のgetArraySum関数にあります。この関数は、ユーザーがバルクプールを作成する際に提供した初期流動性を計算する際に、大きな数の加算によるオーバーフローを正しく処理できていませんでした。攻撃プロセスは次のとおりです:1. 攻撃者は最初にある分散型取引所で少量のMNZトークンを交換しました。2. その後、CreateMassPools関数を呼び出し、慎重に構築されたパラメータを渡します。_StartAmount配列には、uint256の上限に近い大きな数と、通常のトークン量の2つの値が含まれています。3. getArraySum関数内の累積操作によるオーバーフローのため、最終的な返り値は1となります。しかし、契約はプールの属性を記録する際に、依然として元の_StartAmount値を使用しています。4. これにより、攻撃者は実際には1つのトークンしか転送せず、契約内に巨大な流動性の量を記録しました。5. 最後に、攻撃者はwithdraw関数を呼び出してトークンを引き出し、攻撃を完了させます。! [Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました! ])https://img-cdn.gateio.im/social/moments-7726863222e36bd3db4e3408503ba81c(このような問題が再発しないように、開発者には以下の対策を取ることをお勧めします:1. より新しいバージョンのSolidityコンパイラを使用してください。これらのバージョンはオーバーフロー検査を自動的に行います。2. 古いバージョンのSolidityを使用する必要がある場合は、OpenZeppelinのSafeMathライブラリなどのサードパーティのセキュリティライブラリを導入して整数演算を処理できます。3. ユーザー入力を処理する際、特に大規模な数値演算が関わるシーンでは、厳格な境界チェックと例外処理を行うべきです。4. 定期的にコード監査を行い、特に整数オーバーフローが関与する可能性のある部分に注意を払う。5. 緊急時の対応に時間を稼ぐために、マルチシグやタイムロックなどのメカニズムの導入を検討します。! [Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました! ])https://img-cdn.gateio.im/social/moments-207e83ef73f5ece4adee71f4f42674f3(この事件は再び、スマートコントラクトの開発において、安全性が常に最優先の考慮事項であるべきであることを思い起こさせます。一見単純な算術操作でさえ、攻撃者が利用する突破口となる可能性があります。! [Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました! ])https://img-cdn.gateio.im/social/moments-915eae1e1853f3d04d16dbac2b8c504a(
Poolzが算術オーバーフロー攻撃を受け、66.5万ドルの損失。マルチチェーン資産に影響。
Poolzが算術オーバーフロー攻撃に遭遇し、約66.5万ドルの損失
最近、Poolzに対する攻撃事件がEthereum、Binance Smart Chain、Polygonネットワーク上で発生しました。オンチェーンデータの監視によると、攻撃は2023年3月15日午前3時16分(UTCに発生しました。この攻撃には、MEE、ESNC、DON、ASW、KMON、POOLZなどのさまざまなトークンが関与しており、総損失は約66.5万ドルです。
! [Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました! ])https://img-cdn.gateio.im/webp-social/moments-974bc1b1f017458e935bb53bf55cef3e.webp(
攻撃者はPoolzスマートコントラクトの算術オーバーフロー脆弱性を悪用しました。具体的には、問題はCreateMassPools関数のgetArraySum関数にあります。この関数は、ユーザーがバルクプールを作成する際に提供した初期流動性を計算する際に、大きな数の加算によるオーバーフローを正しく処理できていませんでした。
攻撃プロセスは次のとおりです:
攻撃者は最初にある分散型取引所で少量のMNZトークンを交換しました。
その後、CreateMassPools関数を呼び出し、慎重に構築されたパラメータを渡します。_StartAmount配列には、uint256の上限に近い大きな数と、通常のトークン量の2つの値が含まれています。
getArraySum関数内の累積操作によるオーバーフローのため、最終的な返り値は1となります。しかし、契約はプールの属性を記録する際に、依然として元の_StartAmount値を使用しています。
これにより、攻撃者は実際には1つのトークンしか転送せず、契約内に巨大な流動性の量を記録しました。
最後に、攻撃者はwithdraw関数を呼び出してトークンを引き出し、攻撃を完了させます。
! [Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました! ])https://img-cdn.gateio.im/webp-social/moments-7726863222e36bd3db4e3408503ba81c.webp(
このような問題が再発しないように、開発者には以下の対策を取ることをお勧めします:
より新しいバージョンのSolidityコンパイラを使用してください。これらのバージョンはオーバーフロー検査を自動的に行います。
古いバージョンのSolidityを使用する必要がある場合は、OpenZeppelinのSafeMathライブラリなどのサードパーティのセキュリティライブラリを導入して整数演算を処理できます。
ユーザー入力を処理する際、特に大規模な数値演算が関わるシーンでは、厳格な境界チェックと例外処理を行うべきです。
定期的にコード監査を行い、特に整数オーバーフローが関与する可能性のある部分に注意を払う。
緊急時の対応に時間を稼ぐために、マルチシグやタイムロックなどのメカニズムの導入を検討します。
! [Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました! ])https://img-cdn.gateio.im/webp-social/moments-207e83ef73f5ece4adee71f4f42674f3.webp(
この事件は再び、スマートコントラクトの開発において、安全性が常に最優先の考慮事項であるべきであることを思い起こさせます。一見単純な算術操作でさえ、攻撃者が利用する突破口となる可能性があります。
! [Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました! ])https://img-cdn.gateio.im/webp-social/moments-915eae1e1853f3d04d16dbac2b8c504a.webp(