Poolz sufre un ataque de desbordamiento aritmético, con pérdidas de aproximadamente 66.5 mil dólares.
Recientemente, un grave incidente de seguridad ocurrió en varias redes de blockchain. Según los datos de monitoreo de blockchain, en la madrugada del 15 de marzo, el proyecto Poolz en las redes de Ethereum, BNB Smart Chain y Polygon fue atacado por hackers, lo que resultó en el robo de una gran cantidad de tokens.
Este ataque involucra múltiples tokens, incluyendo MEE, ESNC, DON, ASW, KMON, POOLZ, entre otros. El valor total de los tokens robados es de aproximadamente 665,000 dólares. Actualmente, los atacantes han intercambiado parte de los tokens robados por BNB, pero aún no han transferido los fondos fuera de la dirección del ataque.
El análisis muestra que el ataque se aprovechó principalmente de una vulnerabilidad de desbordamiento aritmético en el contrato inteligente de Poolz. El atacante manipuló hábilmente el cálculo de la cantidad de tokens al llamar a la función CreateMassPools, logrando así obtener una gran cantidad de tokens con una cantidad muy pequeña de tokens.
En concreto, el atacante primero intercambió una pequeña cantidad de tokens MNZ en un intercambio descentralizado. Luego, el atacante llamó a la función CreateMassPools para crear en masa los grupos de liquidez. Esta función debería haberse utilizado para que los usuarios crearan grupos en masa y proporcionaran liquidez inicial.
El problema radica en la función getArraySum. Esta función es responsable de calcular la cantidad inicial de liquidez proporcionada por el usuario. El atacante pasó un array especialmente construido que contiene dos números enormes. Cuando se suman estos dos números, debido a la limitación del tipo uint256, ocurre un desbordamiento entero, lo que resulta en que el resultado final sea 1.
Sin embargo, el contrato utiliza un gran valor numérico de la entrada original al registrar las propiedades del fondo. Esto provoca una grave inconsistencia: el atacante realmente solo transfirió 1 token, pero el contrato registró un valor enorme. Al final, el atacante logró retirar fácilmente una gran cantidad de tokens llamando a la función withdraw, completando así todo el proceso de ataque.
Este incidente destaca una vez más la importancia de la seguridad en los contratos inteligentes. Para prevenir problemas similares, se recomienda a los desarrolladores utilizar versiones más recientes del lenguaje de programación Solidity, ya que las nuevas versiones realizan automáticamente verificaciones de desbordamiento durante el proceso de compilación. Para los proyectos que utilizan versiones antiguas de Solidity, se puede considerar la incorporación de la biblioteca SafeMath de OpenZeppelin para resolver problemas de desbordamiento de enteros.
Este evento nos recuerda que incluso un descuido de programación que parece pequeño puede resultar en grandes pérdidas económicas. Los proyectos de blockchain necesitan prestar más atención a las auditorías de código y pruebas de seguridad para garantizar la seguridad de los activos de los usuarios.
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.
11 me gusta
Recompensa
11
5
Compartir
Comentar
0/400
ShibaOnTheRun
· 07-12 01:15
Otra vez las manos negras de la vulnerabilidad de desbordamiento
Ver originalesResponder0
GateUser-ccc36bc5
· 07-11 10:27
Otro proyecto condenado
Ver originalesResponder0
GasFeeNightmare
· 07-09 09:48
mundo Cripto un día equivale a un año en la tierra
Poolz sufre un ataque de desbordamiento aritmético, pérdida de 66.5 mil dólares en múltiples cadenas.
Poolz sufre un ataque de desbordamiento aritmético, con pérdidas de aproximadamente 66.5 mil dólares.
Recientemente, un grave incidente de seguridad ocurrió en varias redes de blockchain. Según los datos de monitoreo de blockchain, en la madrugada del 15 de marzo, el proyecto Poolz en las redes de Ethereum, BNB Smart Chain y Polygon fue atacado por hackers, lo que resultó en el robo de una gran cantidad de tokens.
Este ataque involucra múltiples tokens, incluyendo MEE, ESNC, DON, ASW, KMON, POOLZ, entre otros. El valor total de los tokens robados es de aproximadamente 665,000 dólares. Actualmente, los atacantes han intercambiado parte de los tokens robados por BNB, pero aún no han transferido los fondos fuera de la dirección del ataque.
El análisis muestra que el ataque se aprovechó principalmente de una vulnerabilidad de desbordamiento aritmético en el contrato inteligente de Poolz. El atacante manipuló hábilmente el cálculo de la cantidad de tokens al llamar a la función CreateMassPools, logrando así obtener una gran cantidad de tokens con una cantidad muy pequeña de tokens.
En concreto, el atacante primero intercambió una pequeña cantidad de tokens MNZ en un intercambio descentralizado. Luego, el atacante llamó a la función CreateMassPools para crear en masa los grupos de liquidez. Esta función debería haberse utilizado para que los usuarios crearan grupos en masa y proporcionaran liquidez inicial.
El problema radica en la función getArraySum. Esta función es responsable de calcular la cantidad inicial de liquidez proporcionada por el usuario. El atacante pasó un array especialmente construido que contiene dos números enormes. Cuando se suman estos dos números, debido a la limitación del tipo uint256, ocurre un desbordamiento entero, lo que resulta en que el resultado final sea 1.
Sin embargo, el contrato utiliza un gran valor numérico de la entrada original al registrar las propiedades del fondo. Esto provoca una grave inconsistencia: el atacante realmente solo transfirió 1 token, pero el contrato registró un valor enorme. Al final, el atacante logró retirar fácilmente una gran cantidad de tokens llamando a la función withdraw, completando así todo el proceso de ataque.
Este incidente destaca una vez más la importancia de la seguridad en los contratos inteligentes. Para prevenir problemas similares, se recomienda a los desarrolladores utilizar versiones más recientes del lenguaje de programación Solidity, ya que las nuevas versiones realizan automáticamente verificaciones de desbordamiento durante el proceso de compilación. Para los proyectos que utilizan versiones antiguas de Solidity, se puede considerar la incorporación de la biblioteca SafeMath de OpenZeppelin para resolver problemas de desbordamiento de enteros.
Este evento nos recuerda que incluso un descuido de programación que parece pequeño puede resultar en grandes pérdidas económicas. Los proyectos de blockchain necesitan prestar más atención a las auditorías de código y pruebas de seguridad para garantizar la seguridad de los activos de los usuarios.