- Según los desarrolladores de Ethereum, la red de pruebas Sepolia sufrió un ataque tras el despliegue de Pectra.
- Se ha desplegado una solución privada para evitar el espionaje del chat por parte del atacante.
La actualización de Ethereum Pectra se implementó recientemente en la red de pruebas Sepolia, pero enfrentó problemas debido a las acciones de un atacante. Los desarrolladores de Ethereum explicaron que el ataque explotó un caso límite no detectado en el contrato ERC20.
Sepolia genera bloques vacíos: ¿Cuál fue la causa?
Como se informó anteriormente, los desarrolladores de Ethereum activaron la actualización de Pectra en la red de pruebas Sepolia el 5 de marzo. El objetivo era probar las características de la actualización en condiciones simuladas de red.
Sin embargo, el 8 de marzo, el desarrollador de Ethereum Marius van der Wijden informó que Sepolia enfrentó problemas poco después de la activación. El equipo detectó mensajes de error en su nodo geth y la minería de bloques vacíos.
El mensaje de error indicaba: «No se pueden analizar los datos del depósito: la longitud del depósito es incorrecta: se esperaban 576, se recibieron 32». Los desarrolladores concluyeron que el error se debía a un evento de transferencia en lugar de un depósito.
Van der Wijden explicó que el equipo actuó rápidamente para resolver el problema. Para garantizar un funcionamiento estable, reemplazaron las transacciones que causaban el caso límite.
No obstante, se pasó por alto un caso límite en la especificación ERC20. Un usuario desconocido aprovechó esta vulnerabilidad para enviar una transferencia de 0 tokens a la dirección de depósito, lo que desencadenó nuevamente el error. Van der Wijden explica:
«Después de unos minutos, volvimos a ver varios bloques vacíos, así que revisamos los grupos de transacciones y encontramos otra transacción problemática que causaba el mismo caso límite.»
Inicialmente, el equipo pensó que un validador de confianza había cometido un error. Sin embargo, descubrieron que la transacción provenía de una cuenta nueva financiada recientemente por un grifo. Esto indicó que alguien había identificado un caso límite en el contrato ERC20 que no se había detectado.
Los desarrolladores de Ethereum contienen el ataque en Sepolia
Los desarrolladores implementaron rápidamente una solución temporal para evitar que el atacante causara más daños. Van der Wijden explicó que optaron por esta medida porque sospechaban que el atacante estaba monitoreando sus comunicaciones.
El equipo actualizó solo algunos nodos bajo su control para generar más bloques completos en la red. La solución consistió en filtrar las transacciones que realizaban llamadas directas al contrato de depósito.
Una vez que actualizaron todos los nodos de ef_devops, la red comenzó a proponer bloques completos nuevamente. Esto permitió a los usuarios continuar utilizando la cadena mientras se coordinaba la implementación de la solución definitiva.
A las 14:00 horas de ese día, todos los nodos se actualizaron con las versiones que incluían la corrección definitiva, y la transacción del atacante se minó con éxito. Van der Wijden aseguró que no hubo pérdida de finalidad durante el incidente. Aclaró que el problema solo ocurrió en Sepolia debido al uso de un contrato de depósito controlado por tokens, en lugar del contrato de depósito estándar de la red principal.
Como se mencionó en informes anteriores, la actualización de Ethereum Pectra introduce 11 nuevas funciones, incluidas mejoras de escalabilidad. Los desarrolladores probaron previamente la actualización en la red de pruebas Holesky el 26 de febrero, pero encontraron problemas. Como resultado, decidieron posponer la implementación de Pectra hasta realizar pruebas adicionales.