Poolz sufre un ataque de desbordamiento aritmético, con pérdidas de aproximadamente 66.5 mil dólares.
Recientemente, la plataforma Poolz sufrió un ataque en Ethereum, Binance Smart Chain y la red Polygon, lo que provocó el robo de una gran cantidad de tokens, con un valor total de aproximadamente 665,000 dólares. El ataque ocurrió el 15 de marzo de 2023 a las 3:16 AM (hora UTC).
Según el monitoreo de datos en la cadena, este ataque involucra varios tokens, incluidos MEE, ESNC, DON, ASW, KMON, POOLZ, entre otros. Los atacantes han intercambiado algunos de los tokens robados por BNB, pero hasta ahora los fondos no se han transferido.
El atacante explotó una vulnerabilidad de desbordamiento aritmético en el contrato de Poolz. En concreto, el problema radica en la función getArraySum dentro de la función CreateMassPools. Esta función, al calcular la cantidad de tokens, provoca un desbordamiento debido a que el resultado acumulado supera el valor máximo del tipo uint256, lo que hace que el valor final devuelto sea 1.
El proceso de ataque es el siguiente:
El atacante primero intercambió algunos tokens MNZ a través de un DEX.
Luego se llama a la función CreateMassPools, aprovechando la vulnerabilidad de la función getArraySum. El array _StartAmount proporcionado por el atacante contiene valores extremadamente grandes, lo que provoca un desbordamiento en la suma.
Debido a que la función CreatePool utiliza _StartAmount para registrar las propiedades del fondo, el atacante en realidad solo transfiere 1 token, pero el sistema registra un valor enorme.
Por último, el atacante llama a la función withdraw para retirar los tokens y completar el ataque.
Para evitar que este tipo de problemas ocurra nuevamente, se recomienda a los desarrolladores que utilicen versiones más recientes de Solidity para la compilación, ya que las nuevas versiones realizan automáticamente la verificación de desbordamientos. Para los proyectos que utilizan versiones más antiguas de Solidity, se puede considerar el uso de la biblioteca SafeMath de OpenZeppelin para solucionar problemas de desbordamiento de enteros.
Este evento nos recuerda nuevamente que, al desarrollar contratos inteligentes, es necesario ser especialmente cauteloso al manejar operaciones matemáticas, especialmente cuando se trata de cálculos de grandes números. Al mismo tiempo, realizar auditorías de código y verificaciones de seguridad de manera regular también es una medida importante para garantizar la seguridad del proyecto.
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
8 me gusta
Recompensa
8
5
Republicar
Compartir
Comentar
0/400
ValidatorVibes
· hace13h
smh... otro ataque de desbordamiento. los auditorías de protocolo son literalmente gobernanza 101 frfr
Ver originalesResponder0
MetaverseVagrant
· hace13h
Otra vez se ha oscurecido, 660,000 también se atreve a llamar hacker.
Poolz sufre un ataque de desbordamiento aritmético, con una pérdida de 66.5 mil dólares.
Poolz sufre un ataque de desbordamiento aritmético, con pérdidas de aproximadamente 66.5 mil dólares.
Recientemente, la plataforma Poolz sufrió un ataque en Ethereum, Binance Smart Chain y la red Polygon, lo que provocó el robo de una gran cantidad de tokens, con un valor total de aproximadamente 665,000 dólares. El ataque ocurrió el 15 de marzo de 2023 a las 3:16 AM (hora UTC).
Según el monitoreo de datos en la cadena, este ataque involucra varios tokens, incluidos MEE, ESNC, DON, ASW, KMON, POOLZ, entre otros. Los atacantes han intercambiado algunos de los tokens robados por BNB, pero hasta ahora los fondos no se han transferido.
El atacante explotó una vulnerabilidad de desbordamiento aritmético en el contrato de Poolz. En concreto, el problema radica en la función getArraySum dentro de la función CreateMassPools. Esta función, al calcular la cantidad de tokens, provoca un desbordamiento debido a que el resultado acumulado supera el valor máximo del tipo uint256, lo que hace que el valor final devuelto sea 1.
El proceso de ataque es el siguiente:
El atacante primero intercambió algunos tokens MNZ a través de un DEX.
Luego se llama a la función CreateMassPools, aprovechando la vulnerabilidad de la función getArraySum. El array _StartAmount proporcionado por el atacante contiene valores extremadamente grandes, lo que provoca un desbordamiento en la suma.
Debido a que la función CreatePool utiliza _StartAmount para registrar las propiedades del fondo, el atacante en realidad solo transfiere 1 token, pero el sistema registra un valor enorme.
Por último, el atacante llama a la función withdraw para retirar los tokens y completar el ataque.
Para evitar que este tipo de problemas ocurra nuevamente, se recomienda a los desarrolladores que utilicen versiones más recientes de Solidity para la compilación, ya que las nuevas versiones realizan automáticamente la verificación de desbordamientos. Para los proyectos que utilizan versiones más antiguas de Solidity, se puede considerar el uso de la biblioteca SafeMath de OpenZeppelin para solucionar problemas de desbordamiento de enteros.
Este evento nos recuerda nuevamente que, al desarrollar contratos inteligentes, es necesario ser especialmente cauteloso al manejar operaciones matemáticas, especialmente cuando se trata de cálculos de grandes números. Al mismo tiempo, realizar auditorías de código y verificaciones de seguridad de manera regular también es una medida importante para garantizar la seguridad del proyecto.