# Poolzは算術オーバーフロー攻撃を受け、約66.5万ドルの損失を被りました最近、複数のブロックチェーンネットワーク上のPoolzプロジェクトが攻撃を受け、大量のトークンが盗まれ、総価値は約66.5万ドルに達しました。この攻撃は2023年3月15日に発生し、Ethereum、BNBチェーン、Polygonなどの複数のネットワーク上のPoolzコントラクトに影響を及ぼしました。攻撃者はPoolzのスマートコントラクトにおける算術オーバーフローの脆弱性を利用しました。具体的には、問題はCreateMassPools関数内のgetArraySum関数にあります。この関数はプールの初期流動性を計算する際に、整数オーバーフローのために攻撃者がごく少量のトークンを転送するだけで大量の流動性の偽装を作り出すことができました。! [Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました! ](https://img-cdn.gateio.im/social/moments-974bc1b1f017458e935bb53bf55cef3e)攻撃プロセスは以下の通りです:1. 攻撃者は最初にあるDEXで少量のMNZトークンを交換しました。2. その後、脆弱性のあるCreateMassPools関数が呼び出されました。この関数は、ユーザーが流動性プールを一括で作成し、初期流動性を提供することを可能にします。3. 初期流動性金額を計算する際に、getArraySum関数で整数オーバーフローが発生しました。攻撃者が渡した配列の合計がuint256が表現できる最大値を超え、関数の戻り値が1になりました。4. しかし、契約はプール属性を記録する際に、元の_StartAmount配列の値を使用しました。これにより、攻撃者が実際には1トークンしか転送していないのに、巨額の流動性を持っていると記録される状況が発生しました。5. 最後に、攻撃者はwithdraw関数を呼び出して資金を引き出し、攻撃を完了しました。! [Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました! ](https://img-cdn.gateio.im/social/moments-7726863222e36bd3db4e3408503ba81c)この事件は、スマートコントラクトにおける算術オーバーフローの危険性を暴露しました。同様の問題を防ぐために、開発者はより新しいバージョンのSolidityコンパイラを使用することを検討すべきです。これらは自動的にオーバーフローのチェックを行います。古いバージョンのSolidityを使用しているプロジェクトには、OpenZeppelinのSafeMathライブラリを使用して整数演算を処理し、オーバーフローのリスクを回避することができます。! [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プロジェクトが攻撃を受け、大量のトークンが盗まれ、総価値は約66.5万ドルに達しました。この攻撃は2023年3月15日に発生し、Ethereum、BNBチェーン、Polygonなどの複数のネットワーク上のPoolzコントラクトに影響を及ぼしました。
攻撃者はPoolzのスマートコントラクトにおける算術オーバーフローの脆弱性を利用しました。具体的には、問題はCreateMassPools関数内のgetArraySum関数にあります。この関数はプールの初期流動性を計算する際に、整数オーバーフローのために攻撃者がごく少量のトークンを転送するだけで大量の流動性の偽装を作り出すことができました。
! Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました!
攻撃プロセスは以下の通りです:
攻撃者は最初にあるDEXで少量のMNZトークンを交換しました。
その後、脆弱性のあるCreateMassPools関数が呼び出されました。この関数は、ユーザーが流動性プールを一括で作成し、初期流動性を提供することを可能にします。
初期流動性金額を計算する際に、getArraySum関数で整数オーバーフローが発生しました。攻撃者が渡した配列の合計がuint256が表現できる最大値を超え、関数の戻り値が1になりました。
しかし、契約はプール属性を記録する際に、元の_StartAmount配列の値を使用しました。これにより、攻撃者が実際には1トークンしか転送していないのに、巨額の流動性を持っていると記録される状況が発生しました。
最後に、攻撃者はwithdraw関数を呼び出して資金を引き出し、攻撃を完了しました。
! Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました!
この事件は、スマートコントラクトにおける算術オーバーフローの危険性を暴露しました。同様の問題を防ぐために、開発者はより新しいバージョンのSolidityコンパイラを使用することを検討すべきです。これらは自動的にオーバーフローのチェックを行います。古いバージョンのSolidityを使用しているプロジェクトには、OpenZeppelinのSafeMathライブラリを使用して整数演算を処理し、オーバーフローのリスクを回避することができます。
! Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました!
今回の攻撃は、スマートコントラクトの開発と監査において、算術操作の安全性に特に注意を払う必要があることを再強調しました。同時に、プロジェクト側も定期的にセキュリティ監査を実施し、潜在的な脆弱性を迅速に発見・修正してユーザー資産の安全を守るべきです。
! Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました!