Se han informado vulnerabilidades en las versiones 0.2.15, 0.2.16 y 0.3.0 de Vyper, lo que pone a muchos grupos en Curve en riesgo de sufrir ataques de reingreso. Esta vulnerabilidad permite que un atacante llame a la función de agregar liquidez durante el proceso de eliminación de liquidez.
Un total de $69,3 millones se han visto afectados hasta el momento, de los cuales $16,7 millones han sido recuperados por hackers de sombrero blanco. Esto también significa que se robaron $ 52 millones de este incidente, lo que lo convierte en el ataque de reingreso más grande hasta ahora en 2023.
Resumen del evento
El 30 de julio de 2023, se anunció que las versiones 0.2.15, 0.2.16 y 0.3.0 del compilador Vyper, un lenguaje de programación orientado a contratos diseñado para Ethereum Virtual Machine (EVM), tenían vulnerabilidades de falla de bloqueo de reentrada. Múltiples proyectos DeFi se vieron afectados por el error, con pérdidas por un total de $ 52 millones.
CertiK ha identificado seis direcciones involucradas en el incidente. El primero (0x172) no pudo explotar la vulnerabilidad en el bloque 17806056. El explotador original retiró 0.1 ETH de Tornado Cash y procedió a crear el contrato de ataque. Sin embargo, una billetera líder (0x6Ec21) pagó más tarifas de gasolina y ejecutó la transacción primero, ganando alrededor de 6100 WETH (11,4 millones de dólares).
Vulnerabilidad de falla previa a la transacción por robot MEV Fuente: Etherscan Etherscan
La brecha provocó más pérdidas: EOA 0xDCe5d adquirió activos por un valor aproximado de 21 millones de dólares. Los detalles de la billetera involucrada son los siguientes:
Un total de seis proyectos fueron afectados, con aproximadamente $69.3 millones robados, de los cuales $16.7 millones fueron devueltos, para una pérdida total de aproximadamente $52 millones.
Qué es Vyper
Vyper es un lenguaje de programación pitónico orientado a contratos para Ethereum Virtual Machine (EVM). Vyper ha estado en versión beta desde 2017, pero su primer lanzamiento no beta fue la versión 0.2.1 en julio de 2020.
Solidity, el lenguaje dominante en el ecosistema Ethereum, ha existido por mucho más tiempo que Vyper, por lo que muchos miembros de la comunidad han creado herramientas que se ejecutan exclusivamente con Solidity. Según datos de DeFiLlama, del valor bloqueado total (TVL) de aproximadamente 70 mil millones de dólares en protocolos DeFi, los contratos inteligentes de Vyper representaron 2,17 mil millones de dólares, mientras que Solidity representó la gran mayoría, hasta 67,49 mil millones de dólares.
Valor bloqueado total por fuente de idioma: DeFiLlama
A partir del 10 de mayo de 2023, el dominio de Vyper cayó de un máximo del 30 % en agosto de 2020 al 6,27 %. A pesar de que el dominio de TVL de Vyper fue significativamente menor que el de Solidity, el evento aún resultó en un éxito de $ 62 millones.
Dominio de diferentes lenguajes de programación en TVL Fuente: DeFiLlama
Versión del compilador
Una versión del compilador se refiere a una versión específica de un compilador de lenguaje de programación que convierte el código fuente legible por humanos en un código legible por máquina.
Las versiones del compilador se actualizan periódicamente para introducir funciones, corregir errores y mejorar la seguridad. Vyper Language actualmente no ofrece un programa de recompensas por errores de piratas informáticos.
Versión 0.2.15 - 0.3.0
Como se mencionó anteriormente, se encontraron vulnerabilidades en las versiones 0.2.15, 0.2.16 y 0.3.0 de Vyper, lo que provocó que varios proyectos DeFi fueran ataques de reingreso.
La primera versión 0.2.15 del exploit Vyper se lanzó el 23 de julio de 2021. Cuando se lanzó la versión 0.3.1 en diciembre del mismo año, la vulnerabilidad anterior había dejado de existir.
línea de tiempo
El incidente comenzó a las 9:10 p. m., hora de Beijing, el 30 de julio. La transacción del atacante para el grupo con JPEG en Curve falló debido a transacciones previas a la ejecución.
A las 10:00 p. m. del 30 de julio, hora de Beijing, JPEG confirmó que el conjunto de pETH-ETH Curve se ha utilizado de manera maliciosa.
Posteriormente, Vyper anunció que las versiones 0.2.15, 0.2.16 y 0.3.0 incluían un bloqueo de reentrada roto. Metronome y Alchemix también se vieron afectados después de que Vyper tuiteara.
Anuncio de metrónomo DAO:
En las primeras horas del segundo día, hora de Beijing, Curve Finance anunció en Discord que el grupo de fondos restante no se ve afectado por el Vyper Bug y está a salvo.
Curve Finance anunció en Twitter que un grupo en Arbitrum estaba potencialmente comprometido, pero no hubo exploits rentables para que los ejecutaran los actores malintencionados, lo que significa que era poco probable que el grupo se viera comprometido. CertiK tampoco ha detectado ningún otro ataque que aproveche la vulnerabilidad de Vyper.
Proceso de ataque
Este es un ejemplo de una oferta orientada a JPEG:
Contrato de ataque: 0x466b85b49ec0c5c1eb402d5ea3c4b88864ea0f04#code
1 El atacante primero toma prestados 80 000 WETH (alrededor de $149 371 300) de Balancer: Vault
2 Luego, el atacante intercambia WETH por ETH, llama a pETH-ETH-f.add_liquidity() y agrega 40 000 ETH (alrededor de $74 685 650) al grupo de pETH-ETH-f. A cambio, el atacante recibió 32.431 pETH (pETH-ETH-f).
3 El atacante llama a remove_liquidity() para eliminar la liquidez agregada en el paso 2. Se transfirieron 3740 pETH y 34 316 ETH al contrato de ataque, y se activó la función fallbak() del contrato de ataque, dando control al atacante. En la función fallback(), el atacante agregó otros 40 000 ETH de liquidez al grupo pETH-ETH-f y recibió 82 182 pETH.
4 El atacante vuelve a llamar a remove_liquidity(), saca 10.272pETH y recibe 47.506 ETH y 1.184pETH. Luego, el atacante intercambió 4924 pETH por 4285 ETH en el grupo pETH-ETH-f.
En total, el atacante obtuvo 34.316 ETH del paso 3, 47.506 y 4.285 ETH del paso 4, para un total de 86.107 ETH. Después de pagar el préstamo flash de 80 000 ETH, el atacante se quedó con 6107 ETH (~11 395 506 USD).
Vulnerabilidades
Esta vulnerabilidad permite que un atacante llame a la función de agregar liquidez durante el proceso de eliminación de liquidez. Si bien se supone que estas funciones están protegidas por @nonreentrant('lock'), las pruebas en las funciones add_liquidty() y remove_liquidity() demostraron que no evitan los ataques de reentrada.
Vyper_contract for Curve.fi Factory Pool Fuente de datos: Etherscan
Las versiones de Vyper v0.2.15, v0.2.16 y v0.3.0 tienen una vulnerabilidad de falla de protección de reentrada luego de las vulnerabilidades de JPEG'd, Metronome y Alchemix.
solución
Los proyectos que utilizan versiones vulnerables de Vyper deben comunicarse con Vyper para obtener ayuda con la mitigación. Los proyectos también deben intentar actualizar a la última versión de Vyper que no contenga esta vulnerabilidad.
Resumir
El ataque a Vyper es la vulnerabilidad de reingreso más grande detectada por CertiK en 2023. En términos de pérdidas financieras, este ataque representó el 78,6% de dichos incidentes.
Las dos mayores vulnerabilidades de reingreso del año explotaron contratos escritos en Vyper, aunque las vulnerabilidades no fueron idénticas.
Actualmente, las pérdidas debidas a ataques de reingreso en todas las cadenas en 2023 han superado los 66 millones de dólares. Eso es alrededor de $ 4 millones más que en todo 2020 y solo $ 1 millón menos que la pérdida de 2021. En particular, el total de 2023 también representa un aumento del 259,45 % en las pérdidas debido a los ataques de retargeting en 2022.
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.
CertiK: explicación detallada de la pérdida de $ 52 millones de Vyper
Se han informado vulnerabilidades en las versiones 0.2.15, 0.2.16 y 0.3.0 de Vyper, lo que pone a muchos grupos en Curve en riesgo de sufrir ataques de reingreso. Esta vulnerabilidad permite que un atacante llame a la función de agregar liquidez durante el proceso de eliminación de liquidez.
Un total de $69,3 millones se han visto afectados hasta el momento, de los cuales $16,7 millones han sido recuperados por hackers de sombrero blanco. Esto también significa que se robaron $ 52 millones de este incidente, lo que lo convierte en el ataque de reingreso más grande hasta ahora en 2023.
Resumen del evento
El 30 de julio de 2023, se anunció que las versiones 0.2.15, 0.2.16 y 0.3.0 del compilador Vyper, un lenguaje de programación orientado a contratos diseñado para Ethereum Virtual Machine (EVM), tenían vulnerabilidades de falla de bloqueo de reentrada. Múltiples proyectos DeFi se vieron afectados por el error, con pérdidas por un total de $ 52 millones.
CertiK ha identificado seis direcciones involucradas en el incidente. El primero (0x172) no pudo explotar la vulnerabilidad en el bloque 17806056. El explotador original retiró 0.1 ETH de Tornado Cash y procedió a crear el contrato de ataque. Sin embargo, una billetera líder (0x6Ec21) pagó más tarifas de gasolina y ejecutó la transacción primero, ganando alrededor de 6100 WETH (11,4 millones de dólares).
Vulnerabilidad de falla previa a la transacción por robot MEV Fuente: Etherscan Etherscan
La brecha provocó más pérdidas: EOA 0xDCe5d adquirió activos por un valor aproximado de 21 millones de dólares. Los detalles de la billetera involucrada son los siguientes:
Un total de seis proyectos fueron afectados, con aproximadamente $69.3 millones robados, de los cuales $16.7 millones fueron devueltos, para una pérdida total de aproximadamente $52 millones.
Qué es Vyper
Vyper es un lenguaje de programación pitónico orientado a contratos para Ethereum Virtual Machine (EVM). Vyper ha estado en versión beta desde 2017, pero su primer lanzamiento no beta fue la versión 0.2.1 en julio de 2020.
Solidity, el lenguaje dominante en el ecosistema Ethereum, ha existido por mucho más tiempo que Vyper, por lo que muchos miembros de la comunidad han creado herramientas que se ejecutan exclusivamente con Solidity. Según datos de DeFiLlama, del valor bloqueado total (TVL) de aproximadamente 70 mil millones de dólares en protocolos DeFi, los contratos inteligentes de Vyper representaron 2,17 mil millones de dólares, mientras que Solidity representó la gran mayoría, hasta 67,49 mil millones de dólares.
A partir del 10 de mayo de 2023, el dominio de Vyper cayó de un máximo del 30 % en agosto de 2020 al 6,27 %. A pesar de que el dominio de TVL de Vyper fue significativamente menor que el de Solidity, el evento aún resultó en un éxito de $ 62 millones.
Versión del compilador
Una versión del compilador se refiere a una versión específica de un compilador de lenguaje de programación que convierte el código fuente legible por humanos en un código legible por máquina.
Las versiones del compilador se actualizan periódicamente para introducir funciones, corregir errores y mejorar la seguridad. Vyper Language actualmente no ofrece un programa de recompensas por errores de piratas informáticos.
Versión 0.2.15 - 0.3.0
Como se mencionó anteriormente, se encontraron vulnerabilidades en las versiones 0.2.15, 0.2.16 y 0.3.0 de Vyper, lo que provocó que varios proyectos DeFi fueran ataques de reingreso.
La primera versión 0.2.15 del exploit Vyper se lanzó el 23 de julio de 2021. Cuando se lanzó la versión 0.3.1 en diciembre del mismo año, la vulnerabilidad anterior había dejado de existir.
línea de tiempo
El incidente comenzó a las 9:10 p. m., hora de Beijing, el 30 de julio. La transacción del atacante para el grupo con JPEG en Curve falló debido a transacciones previas a la ejecución.
A las 10:00 p. m. del 30 de julio, hora de Beijing, JPEG confirmó que el conjunto de pETH-ETH Curve se ha utilizado de manera maliciosa.
Posteriormente, Vyper anunció que las versiones 0.2.15, 0.2.16 y 0.3.0 incluían un bloqueo de reentrada roto. Metronome y Alchemix también se vieron afectados después de que Vyper tuiteara.
Anuncio de metrónomo DAO:
En las primeras horas del segundo día, hora de Beijing, Curve Finance anunció en Discord que el grupo de fondos restante no se ve afectado por el Vyper Bug y está a salvo.
Curve Finance anunció en Twitter que un grupo en Arbitrum estaba potencialmente comprometido, pero no hubo exploits rentables para que los ejecutaran los actores malintencionados, lo que significa que era poco probable que el grupo se viera comprometido. CertiK tampoco ha detectado ningún otro ataque que aproveche la vulnerabilidad de Vyper.
Proceso de ataque
Este es un ejemplo de una oferta orientada a JPEG:
Atacante: 0x6ec21d1868743a44318c3c259a6d4953f9978538
Contrato de ataque: 0x466b85b49ec0c5c1eb402d5ea3c4b88864ea0f04#code
1 El atacante primero toma prestados 80 000 WETH (alrededor de $149 371 300) de Balancer: Vault
2 Luego, el atacante intercambia WETH por ETH, llama a pETH-ETH-f.add_liquidity() y agrega 40 000 ETH (alrededor de $74 685 650) al grupo de pETH-ETH-f. A cambio, el atacante recibió 32.431 pETH (pETH-ETH-f).
3 El atacante llama a remove_liquidity() para eliminar la liquidez agregada en el paso 2. Se transfirieron 3740 pETH y 34 316 ETH al contrato de ataque, y se activó la función fallbak() del contrato de ataque, dando control al atacante. En la función fallback(), el atacante agregó otros 40 000 ETH de liquidez al grupo pETH-ETH-f y recibió 82 182 pETH.
4 El atacante vuelve a llamar a remove_liquidity(), saca 10.272pETH y recibe 47.506 ETH y 1.184pETH. Luego, el atacante intercambió 4924 pETH por 4285 ETH en el grupo pETH-ETH-f.
En total, el atacante obtuvo 34.316 ETH del paso 3, 47.506 y 4.285 ETH del paso 4, para un total de 86.107 ETH. Después de pagar el préstamo flash de 80 000 ETH, el atacante se quedó con 6107 ETH (~11 395 506 USD).
Vulnerabilidades
Esta vulnerabilidad permite que un atacante llame a la función de agregar liquidez durante el proceso de eliminación de liquidez. Si bien se supone que estas funciones están protegidas por @nonreentrant('lock'), las pruebas en las funciones add_liquidty() y remove_liquidity() demostraron que no evitan los ataques de reentrada.
Vyper_contract for Curve.fi Factory Pool Fuente de datos: Etherscan
Las versiones de Vyper v0.2.15, v0.2.16 y v0.3.0 tienen una vulnerabilidad de falla de protección de reentrada luego de las vulnerabilidades de JPEG'd, Metronome y Alchemix.
solución
Los proyectos que utilizan versiones vulnerables de Vyper deben comunicarse con Vyper para obtener ayuda con la mitigación. Los proyectos también deben intentar actualizar a la última versión de Vyper que no contenga esta vulnerabilidad.
Resumir
El ataque a Vyper es la vulnerabilidad de reingreso más grande detectada por CertiK en 2023. En términos de pérdidas financieras, este ataque representó el 78,6% de dichos incidentes.
Las dos mayores vulnerabilidades de reingreso del año explotaron contratos escritos en Vyper, aunque las vulnerabilidades no fueron idénticas.
Actualmente, las pérdidas debidas a ataques de reingreso en todas las cadenas en 2023 han superado los 66 millones de dólares. Eso es alrededor de $ 4 millones más que en todo 2020 y solo $ 1 millón menos que la pérdida de 2021. En particular, el total de 2023 también representa un aumento del 259,45 % en las pérdidas debido a los ataques de retargeting en 2022.