Ataque de donación en Sonne Finance
Sonne Finance perdió $20M en Optimism por un 'ataque de donación', un exploit conocido de forks de Compound v2 al desplegar y sembrar un mercado.
- Fecha
- Víctima
- Sonne Finance
- Cadena(s)
- Estado
- Fondos robados
El 14 de mayo de 2024, el protocolo de préstamos basado en Optimism Sonne Finance perdió aproximadamente $20 millones por un clásico "ataque de donación" — una clase de vulnerabilidad conocida en forks de Compound v2 que ha sumado más de $50M en pérdidas acumuladas en media docena de protocolos.
Qué ocurrió
El flujo de despliegue de mercado de Compound v2 tiene dos pasos:
- Desplegar un nuevo contrato de mercado (p. ej.
cVELOpara colateral VELO). - Sembrar el mercado con un depósito inicial que establece el tipo de cambio entre el token subyacente y el cToken.
En un despliegue por lotes en una sola transacción, esto es seguro. Dividido en transacciones separadas en un entorno sin permisos, es explotable.
El proceso de listado de mercados de Sonne dividía el despliegue en múltiples transacciones para acomodar el flujo de gobernanza. Entre los dos pasos:
- El atacante tomó un préstamo flash de 35,5M de VELO.
- Transfirió VELO directamente al contrato vacío soVELO (una "donación" — sin acuñación, solo una transferencia de tokens en bruto).
- El
totalCashdel contrato soVELO aumentó; sutotalSupplyde cTokens permaneció en cero. - El primer depositante legítimo — o el propio atacante — podía entonces depositar un solo soVELO y ser acreditado con todo el saldo de
totalCash, debido al cálculo roto del tipo de cambio en la funciónexchangeRateStoreddel fork de Compound v2 bajo condiciones donde el supply es distinto de cero pero los depósitos totales son derivados de cero.
Repitiendo la maniobra en múltiples mercados nuevos, el atacante drenó ~$20M en depósitos antes de que el equipo de Sonne se diera cuenta.
Consecuencias
- El equipo de Sonne detectó el exploit aproximadamente 25 minutos después de la primera transacción de ataque.
- Pausaron los mercados afectados y ofrecieron una recompensa white-hat del 10%. El atacante rechazó y blanqueó a través de Tornado Cash.
- Sonne Finance finalmente cerró las operaciones de préstamo en Optimism.
Por qué importa
El ataque de donación en forks de Compound v2 ha sido documentado y parcheado en el repositorio canónico de Compound durante años. Cada fork que se lanza sin el lote integrado de despliegue de mercado — incluyendo Hundred Finance (dos veces), Midas Capital, Onyx Protocol y otros — ha sido o será explotado por el mismo patrón.
Es la ilustración más limpia de por qué forkear una base de código sensible a la seguridad no es lo mismo que heredar su seguridad: los forks necesitan rastrear los parches de seguridad upstream y sus suposiciones sobre cómo desplegar de forma segura. El coste de saltarse ese paso está bien documentado en dólares.
Fuentes y evidencia on-chain
- [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-sonne-finance-hack-may-2024
- [02]certik.comhttps://www.certik.com/resources/blog/sonne-finance-incident-analysis
- [03]medium.comhttps://medium.com/@SonneFinance/post-mortem-sonne-finance-exploit-12f3daa82b06