Poly Network sufrió un ataque de hackers: la vulnerabilidad del contrato EthCrossChainManager provocó pérdidas de fondos

robot
Generación de resúmenes en curso

Análisis del incidente de ataque de Hacker a Poly Network

Recientemente, el protocolo de interoperabilidad entre cadenas Poly Network sufrió un ataque de un hacker, lo que generó una amplia atención. Según el análisis del equipo de seguridad, este ataque no se debió a una filtración de la clave privada del keeper, sino que el atacante utilizó datos hábilmente construidos para modificar la dirección del keeper del contrato EthCrossChainData aprovechando una vulnerabilidad del contrato.

Principio del ataque

El núcleo del ataque radica en que la función verifyHeaderAndExecuteTx del contrato EthCrossChainManager puede ejecutar transacciones entre cadenas. Dado que el propietario del contrato EthCrossChainData es el contrato EthCrossChainManager, este último puede llamar a la función putCurEpochConPubKeyBytes del primero para cambiar el keeper.

El atacante utilizó la función verifyHeaderAndExecuteTx para pasar datos cuidadosamente diseñados, llamando internamente a la función _executeCrossChainTx, y finalmente ejecutó la función putCurEpochConPubKeyBytes del contrato EthCrossChainData, cambiando el rol de keeper a la dirección especificada por el atacante.

Una vez completado el reemplazo del rol de keeper, el atacante podrá construir transacciones a su antojo y extraer cualquier cantidad de fondos del contrato.

Proceso de ataque

  1. El atacante primero llamó a la función putCurEpochConPubKeyBytes a través de la función verifyHeaderAndExecuteTx del contrato EthCrossChainManager, cambiando el keeper.

  2. A continuación, el atacante llevó a cabo una serie de transacciones de ataque para retirar fondos del contrato.

  3. Debido a que el keeper fue modificado, las transacciones normales de otros usuarios fueron rechazadas.

  4. Ataques similares también se están llevando a cabo en la red de Ethereum, utilizando el mismo método.

Conclusión

La raíz de este ataque radica en que el keeper del contrato EthCrossChainData puede ser modificado por el contrato EthCrossChainManager, y la función verifyHeaderAndExecuteTx de este último puede ejecutar los datos proporcionados por el usuario. El atacante aprovechó esta falla de diseño al construir datos específicos que modificaron la dirección del keeper del contrato EthCrossChainData, logrando así su objetivo de ataque.

Este evento nos recuerda una vez más que al diseñar protocolos de cadena cruzada, es necesario prestar especial atención a la gestión de permisos y la validación de datos, para evitar que se aprovechen vulnerabilidades de seguridad similares. Al mismo tiempo, también destaca la importancia de realizar auditorías de seguridad periódicas y programas de recompensas por vulnerabilidades para detectar y corregir a tiempo posibles riesgos de seguridad.

Ver originales
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Recompensa
  • 5
  • Compartir
Comentar
0/400
MetaDreamervip
· 07-04 18:08
Otro baozi ha sido llevado.
Ver originalesResponder0
CoffeeNFTsvip
· 07-02 15:50
¿Los contratos inteligentes han explotado de nuevo? ¿Quién se atreve a almacenar moneda en estos tiempos?
Ver originalesResponder0
ShitcoinConnoisseurvip
· 07-02 15:48
Otro contrato inteligente ha sido aprovechado.
Ver originalesResponder0
LayoffMinervip
· 07-02 15:47
La vulnerabilidad de seguridad ha vuelto. Se ha escapado, se ha escapado.
Ver originalesResponder0
HodlVeteranvip
· 07-02 15:31
Cada año hay tontos que son tomados por tontos, ya estamos acostumbrados.
Ver originalesResponder0
  • Anclado
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)