El 3 de enero de 2024, según Beosin EagleEye, el proyecto Radiant Capital fue víctima de un ataque de préstamo rápido por parte de un atacante. A través de tres transacciones, el atacante robó más de 1900 ETH, valorados en más de 4,5 millones de dólares. Los fondos robados se encuentran actualmente en la dirección del atacante y el equipo de seguridad de Beosin analizó rápidamente el incidente.
Análisis de vulnerabilidad
La causa fundamental de este incidente radica en el cálculo de la cantidad de tokens del proyecto Radiant Capital, que implica expansión y redondeo de precisión. El atacante aprovechó la capacidad de controlar la precisión y, combinado con el redondeo, amplió los márgenes de beneficio del ataque.

En el código observado, la función rayDiv toma dos datos uint256, a y b. Todo el proceso se puede simplificar como (a RAY + b/2) / b, donde RAY son datos de expansión de precisión, iguales a 10²⁷. Esto da como resultado un RAY/b+0,5, logrando la funcionalidad de redondeo. La principal fuente de error en este cálculo proviene de b. Si b es significativamente menor que a, el error se vuelve insignificante. Sin embargo, si b es de magnitud similar a a, el error puede ser sustancial.
Por ejemplo, si a RAY = 10000 yb = 3, el resultado calculado es 3333, que es 1/10000 menos que el valor real. Si a RAY = 10000 yb = 3000, el resultado calculado es 3, que es 1/10 menos que el valor real.
En este incidente, el atacante manipuló el valor de b para que tuviera una magnitud similar a a, lo que provocó que el cálculo fuera equivalente a 3/2,0001 = 1. El valor calculado es 1/3 menor que el valor real.
Proceso de ataque
Inicialmente, el atacante pidió prestados 3 millones de USDC a través de un préstamo rápido de AAVE como capital inicial para el ataque.

2. Se prometieron 2 millones de USDC al contrato Radiant y el atacante obtuvo 2 millones de certificados simbólicos rUSDCn.

3. El atacante utilizó un préstamo rápido a través del contrato Radiant para pedir prestado 2 millones de USDC. En la función de devolución de llamada, se reembolsaron 2 millones de USDC, extrayendo simultáneamente los USDC comprometidos del segundo paso. La función de préstamo rápido se denomina función de transferencia desde, transfiriendo el USDC del atacante al contrato, con una tarifa de 9/10000 cobrada como liquidez para el grupo.

4. Al repetir el paso 3, el atacante controló en gran medida el liquidityIndex, alcanzando liquidityIndex=271800000000999999999999998631966035920.

5. Posteriormente, el atacante creó un nuevo contrato y depositó en él 543.600 USDC. Este monto corresponde al doble del valor del liquidityIndex del paso 4, lo que facilita el control del redondeo.

6. El atacante prometió los 543.600 USDC en el contrato Radiant, obteniendo una cantidad equivalente de rUSDCn.

7. El atacante retiró 407.700 USDC. Aunque se deberían haber quemado 407,700 rUSDCn, como se mencionó anteriormente, la función de quema implicó cálculos de expansión y redondeo de precisión. 40770000000000000000000000000000000000000000000/271800000000999999999999998631966035920 = 1,49999999, pero el redondeo da como resultado 1, lo que hace que el resultado sea 1/3 menor que el valor real. Como se muestra a continuación, en lugar de quemar 407.700, solo se quemaron 271.800, lo que permitió al atacante retirar 407.700 USDC.

8. Explotando la vulnerabilidad del paso 7, el atacante repitió las operaciones de promesa y retiro, retirando constantemente 1/3 más de la cantidad prometida y, en última instancia, intercambiando todos los USDC del grupo.

Seguimiento de fondos
Al momento de escribir este artículo, el 1902 ETH robado permanece en la dirección del hacker sin movimiento. Beosin Trace seguirá monitoreando los fondos.

A medida que comienza 2024, hemos sido testigos de dos casos de robo de alto valor. (Revisión del incidente de seguridad de ayer: ¿Qué pasó en el primer caso del año, el robo de Orbit Chain por 80 millones de dólares?) Esta serie de eventos sirve como recordatorio de que en el ecosistema Web3, ¡las precauciones de seguridad siguen siendo cruciales!
Contacto
Si necesita algún servicio de seguridad blockchain, bienvenido a contactarnos:
Sitio web oficial Beosin EagleEye Twitter Telegram Linkedin