Saltar al contenido
Est. MMXXVIVol. VI · № 273RSS
Blockchain Breaches

Archivo de incidentes de seguridad en criptomonedas — hackeos, exploits, fallos de puentes y rug pulls, documentados con evidencia on-chain.

Expediente № 123Reentrancy

Reentrada de solo lectura de Curve en dForce

Una reentrada de solo lectura en remove_liquidity de Curve drenó 3,65 M$ del pool wstETH/ETH de dForce en Arbitrum y Optimism. Un sombrero blanco devolvió todo.

Fecha
Estado
Recuperado

El 10 de febrero de 2023, el protocolo de préstamo dForce Network perdió aproximadamente 3,65 millones de dólares mediante un ataque de reentrada de solo lectura en Curve sobre su integración de pool wstETH/ETH en Arbitrum y Optimism. El atacante —identificado luego como un sombrero blanco— devolvió los 3,65 M$ completos a cambio de una recompensa.

Qué ocurrió

dForce usaba los pools wstETH/ETH de Curve Finance como fuente de información de precios para sus mercados de préstamo en Arbitrum y Optimism. La integración leía el precio virtual reportado por Curve para los tokens LP del pool, para valorar el colateral de los usuarios y disparar liquidaciones.

La vulnerabilidad vivía en el bien documentado patrón de reentrada de solo lectura de Curve. La función remove_liquidity de Curve realiza una secuencia de mutaciones de estado y llamadas externas, y entre mutaciones, el precio virtual reportado por el pool es temporalmente incorrecto. Un contrato que lea el precio virtual durante este hueco obtiene una lectura manipulada sin que se disparen los guards explícitos de reentrada.

El ataque:

  1. Pidió préstamo flash de stETH (y activos relacionados) para financiar la operación.
  2. Depositó y luego retiró parcialmente liquidez del pool wstETH/ETH de Curve correspondiente.
  3. Durante la ejecución de remove_liquidity —específicamente, en el hueco entre dos mutaciones de estado— volvió a entrar en los contratos de préstamo de dForce.
  4. El código de lectura de precio de dForce consumió el precio virtual a media mutación de Curve, que estaba temporalmente deprimido.
  5. Con dForce creyendo que el precio LP wstETH/ETH se había desplomado, las posiciones de otros usuarios parecieron infracolateralizadas y el atacante disparó liquidaciones a tasas favorables.
  6. Repagó el préstamo flash y se marchó con aproximadamente 3,65 M$ de beneficio en ambas cadenas.

Consecuencias

  • dForce pausó los mercados afectados en horas.
  • El atacante se identificó públicamente como sombrero blanco mediante mensajes on-chain y entró en negociación con el equipo de dForce.
  • Tras acordar el pago de una recompensa y la retirada de cualquier investigación en curso, se devolvieron los 3,65 M$ completos al multi-firma de dForce.
  • dForce rediseñó la integración con Curve con lecturas de precio conscientes de la reentrada de solo lectura.

Por qué importa

El incidente de dForce forma parte del linaje de reentrada de solo lectura de Curve, un patrón de vulnerabilidad que ha producido pérdidas recurrentes en DeFi desde que la semántica de remove_liquidity de Curve se entendió ampliamente:

  • Lendf.Me (abr 2020) — variante original de reentrada de Curve.
  • dForce (feb 2023) — reentrada de solo lectura en el pool wstETH/ETH.
  • Conic Finance (jul 2023) — fallo en la verificación _isETH(); misma clase subyacente de bug.
  • Múltiples incidentes menores en protocolos que integran oráculos de Curve.

La lección estructural es la misma repetida durante años: cualquier protocolo que lea el estado interno de un pool de Curve debe manejar explícitamente la ventana de reentrada de solo lectura. Curve ha publicado guías sobre cómo integrarse de forma segura; los protocolos que no las siguen —típicamente porque el código en cuestión se escribió antes de que existiera la guía y nunca se actualizó— siguen siendo candidatos a exploit.

El retorno por parte del sombrero blanco también es ilustrativo. El incidente de dForce es uno de un número creciente de casos en los que los atacantes se identifican y negocian abiertamente, probablemente porque:

  1. La forense on-chain ha mejorado lo suficiente como para que intentar lavar un exploit claramente identificado sea arriesgado.
  2. Los programas de bounty en los principales protocolos ofrecen pagos significativos sin la sobrecarga legal y operativa del lavado.
  3. El encuadre de sombrero blanco ofrece protección legal que la alternativa no.

Para los equipos de protocolo, negociar de buena fe con un exploitador se ha convertido en la ruta de mayor recuperación para incidentes de tamaño moderado. El patrón dForce 3,65 M$ / recuperación 100% / recompensa negociada se ha convertido en un pequeño género propio en el panorama de incidentes post-2023 en DeFi.

Fuentes y evidencia on-chain

  1. [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-dforce-hack-february-2023
  2. [02]theblock.cohttps://www.theblock.co/post/210518/dforce-protocol-drained-of-3-6-million-in-reentrancy-attack
  3. [03]certik.comhttps://www.certik.com/resources/blog/curve-conundrum-the-dforce-attack-via-a-read-only-reentrancy-vector-exploit

Registros relacionados