# Poolzが算術オーバーフロー攻撃を受け、約66.5万ドルの損失最近、Poolzプラットフォームはイーサリアム、バイナンススマートチェーン、Polygonネットワークで攻撃を受け、多くのトークンが盗まれ、総価値は約66.5万ドルに達しました。攻撃は2023年3月15日午前3時16分(UTC時間)に発生しました。! [Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました! ](https://img-cdn.gateio.im/social/moments-974bc1b1f017458e935bb53bf55cef3e)オンチェーンデータの監視によると、今回の攻撃にはMEE、ESNC、DON、ASW、KMON、POOLZなどの複数のトークンが関与しています。攻撃者は一部の盗まれたトークンをBNBに交換しましたが、現在資金はまだ移動していません。! [Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました! ](https://img-cdn.gateio.im/social/moments-7726863222e36bd3db4e3408503ba81c)攻撃者は、Poolz契約内の算術オーバーフローの脆弱性を利用しました。具体的には、CreateMassPools関数内のgetArraySum関数に問題があります。この関数は、トークンの数量を計算する際、累積結果がuint256型の最大値を超えるため、オーバーフローが発生し、最終的に返される値が1に変わります。攻撃の流れは以下の通りです:1. 攻撃者は最初にあるDEXでいくつかのMNZトークンを交換しました。2. 次に、CreateMassPools関数を呼び出して、getArraySum関数の脆弱性を悪用します。 攻撃者は、非常に大きな値を含む_StartAmountの配列を渡して、付加的なオーバーフローを引き起こします。3. CreatePool関数は_StartAmountを使用してプールの属性を記録するため、攻撃者は実際には1トークンしか転入していないが、システムは巨大な数値を記録している。4. 最後に、攻撃者はwithdraw関数を呼び出してトークンを引き出し、攻撃を完了します。! [Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました! ](https://img-cdn.gateio.im/social/moments-207e83ef73f5ece4adee71f4f42674f3)このような問題が再発しないように、開発者には新しいバージョンのSolidityを使用してコンパイルすることをお勧めします。新しいバージョンでは、自動的にオーバーフローのチェックが行われます。古いバージョンのSolidityを使用しているプロジェクトについては、整数のオーバーフローの問題を解決するためにOpenZeppelinのSafeMathライブラリを使用することを検討してください。この事件は、スマートコントラクトの開発において、特に大きな数値計算を扱う際には数学的な演算を特に慎重に行う必要があることを再び思い出させます。また、定期的なコード監査とセキュリティチェックもプロジェクトの安全を確保するための重要な措置です。! [Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました! ](https://img-cdn.gateio.im/social/moments-915eae1e1853f3d04d16dbac2b8c504a)
Poolzは算術オーバーフロー攻撃を受け、66.5万ドルの損失を被りました。
Poolzが算術オーバーフロー攻撃を受け、約66.5万ドルの損失
最近、Poolzプラットフォームはイーサリアム、バイナンススマートチェーン、Polygonネットワークで攻撃を受け、多くのトークンが盗まれ、総価値は約66.5万ドルに達しました。攻撃は2023年3月15日午前3時16分(UTC時間)に発生しました。
! Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました!
オンチェーンデータの監視によると、今回の攻撃にはMEE、ESNC、DON、ASW、KMON、POOLZなどの複数のトークンが関与しています。攻撃者は一部の盗まれたトークンをBNBに交換しましたが、現在資金はまだ移動していません。
! Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました!
攻撃者は、Poolz契約内の算術オーバーフローの脆弱性を利用しました。具体的には、CreateMassPools関数内のgetArraySum関数に問題があります。この関数は、トークンの数量を計算する際、累積結果がuint256型の最大値を超えるため、オーバーフローが発生し、最終的に返される値が1に変わります。
攻撃の流れは以下の通りです:
攻撃者は最初にあるDEXでいくつかのMNZトークンを交換しました。
次に、CreateMassPools関数を呼び出して、getArraySum関数の脆弱性を悪用します。 攻撃者は、非常に大きな値を含む_StartAmountの配列を渡して、付加的なオーバーフローを引き起こします。
CreatePool関数は_StartAmountを使用してプールの属性を記録するため、攻撃者は実際には1トークンしか転入していないが、システムは巨大な数値を記録している。
最後に、攻撃者はwithdraw関数を呼び出してトークンを引き出し、攻撃を完了します。
! Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました!
このような問題が再発しないように、開発者には新しいバージョンのSolidityを使用してコンパイルすることをお勧めします。新しいバージョンでは、自動的にオーバーフローのチェックが行われます。古いバージョンのSolidityを使用しているプロジェクトについては、整数のオーバーフローの問題を解決するためにOpenZeppelinのSafeMathライブラリを使用することを検討してください。
この事件は、スマートコントラクトの開発において、特に大きな数値計算を扱う際には数学的な演算を特に慎重に行う必要があることを再び思い出させます。また、定期的なコード監査とセキュリティチェックもプロジェクトの安全を確保するための重要な措置です。
! Poolzは算術オーバーフローの問題で攻撃を受け、約665,000ドルを失いました!