El 10 de agosto de 2021, la plataforma de interoperabilidad entre cadenas Poly Network —que permite a los usuarios transferir o intercambiar tokens entre blockchains— fue drenada de más de 610 millones de dólares en uno de los mayores robos de moneda digital jamás registrados. La firma de seguridad SlowMist confirmó que se transfirieron más de 610 millones de dólares a tres direcciones, con grandes pérdidas en el pool entre cadenas de O3 Swap.
La causa raíz fue un fallo de diseño en el contrato inteligente, no una clave robada. En los contratos de Poly, la función verifyHeaderAndExecuteTx del EthCrossChainManager puede ejecutar transacciones entre cadenas, y podía usarse para llamar a putCurEpochConPubKeyBytes, cambiando el rol de keeper del contrato EthCrossChainData por una dirección elegida por el atacante. Con el keeper reemplazado, el atacante podía construir transacciones a voluntad y retirar cualquier cantidad.
El atacante, posteriormente apodado 'Mr. White Hat', afirmó que el ataque se hizo 'por diversión' para exponer la vulnerabilidad y comenzó a devolver fondos al día siguiente. Poly Network ofreció una recompensa de 500.000 dólares y prometió que la persona no sería considerada responsable. Para el 12 de agosto, se habían devuelto unos 342 millones de dólares, con solo unos 33 millones de dólares en Tether aún congelados por el emisor del token.
Más de 610 millones de dólares robados en Ethereum, Binance Smart Chain y Polygon —en su momento, el mayor robo de DeFi de la historia; casi todo devuelto en cuestión de días excepto 33 millones de dólares en Tether congelados.
El contrato permitía que una transacción entre cadenas cambiara la dirección del keeper que protege todos los fondos.
verifyHeaderAndExecuteTx y la ruta de actualización del keeper compartían un límite de función sin separación de privilegios.
El código estaba desplegado en tres cadenas, pero el mismo fallo existía en todas ellas.
No había un mecanismo de pausa de emergencia lo suficientemente rápido para detener el drenaje una vez que comenzó.
En los puentes entre cadenas, el privilegio es dinero: las funciones de cambio de keeper y de verificación de mensajes necesitan auditorías separadas, privilegios mínimos y pruebas de lógica, no solo la custodia de claves.
El atacante devolvió casi todos los activos robados en los días siguientes y Poly Network declaró a la persona un 'white hat', transfiriendo el resto a una cartera multifirma controlada por ambas partes. La cifra de 610 millones de dólares superó con creces los 474 millones de dólares en pérdidas criminales registradas en todo DeFi en los primeros siete meses de 2021, y el incidente impulsó a los proyectos de puentes a tratar la lógica de los contratos —no solo las claves privadas— como la superficie de ataque crítica. Poly Network siguió operando, pero los puentes entre cadenas siguieron siendo un objetivo favorito en años posteriores.
CONSULTA LAS PRUEBAS
Las fuentes
- 'White hat' hacker returns most of $600 million crypto tokens taken - Poly Network Reuters · finance.yahoo.com ·
- 'White hat' hacker behind $610m crypto heist returns most of money The Guardian · theguardian.com ·
- Over $600 Million Stolen in Biggest Ever Cryptocurrency Theft Infosecurity Magazine · infosecurity-magazine.com ·