Análisis profundo: Ataque de manipulación de NAV en préstamos rápidos de Morpho Vault tras la desvinculación de USR

robot
Generación de resúmenes en curso

22 de marzo de 2026, el protocolo Resolv sufrió una filtración de claves privadas, y los atacantes acuñaron de la nada 80 millones de USR sin respaldo, provocando que USR cayera de $1 a $0.025.

Las secuelas de esta catástrofe no solo afectaron a los poseedores de USR, sino que un grupo de personas más inteligentes ejecutó un sofisticado ataque de manipulación del NAV en Morpho.

Este artículo desglosará paso a paso la lógica subyacente de este ataque.

  1. Primero, entender la arquitectura de dos capas de Morpho

Antes de hablar del ataque, debes entender el diseño de la arquitectura de Morpho, de lo contrario no entenderás nada después.

El mundo de Morpho se divide en dos capas:

Capa base:

Morpho Blue (también llamado Morpho Core). Es un protocolo de préstamo extremadamente simple e inmutable. Su filosofía de diseño es “sin permisos”: cualquiera puede crear un mercado de préstamos, depositar, tomar prestado y liquidar.

Cada mercado se determina por cinco parámetros únicos: activo de préstamo, activo de garantía, línea de liquidación (LLTV), dirección del oráculo, modelo de interés.

Los mercados están completamente aislados; que un mercado tenga problemas no afectará a los demás.

Capa superior:

MetaMorpho Vault (el fondo). Es un fondo que cumple con el estándar ERC-4626, similar a un “producto de fondos”.

Los usuarios depositan USDC en el fondo, y el administrador del fondo (Curator) se encarga de distribuir estos fondos en diferentes mercados Morpho Blue para prestar y ganar intereses.

Los usuarios poseen participaciones del fondo (shares), cuyo valor aumenta con los intereses acumulados.

Fórmula clave — Valor neto por acción (NAV / Precio por acción): Valor neto por acción = totalAssets / totalSupply

totalAssets es la suma de las posiciones de suministro en todos los mercados del fondo (incluyendo las ya prestadas, ya que son “cuentas por cobrar”). totalSupply es el total de participaciones emitidas por el fondo. Cuando se acumulan intereses, totalAssets crece pero totalSupply no cambia, por lo que el valor neto por acción aumenta — esa es la forma en que ganas dinero.

  1. supply(onBehalf) — Cualquier persona puede depositar en nombre del fondo

Este es el primer punto clave del ataque.

En Morpho Blue, la función supply() tiene un parámetro onBehalf. La intención de este diseño es facilitar pagos por terceros — por ejemplo, contratos de estrategias automatizadas pueden depositar en nombre del usuario.

Pero es completamente sin permisos: cualquiera puede especificar cualquier dirección como onBehalf, incluyendo la dirección del fondo.

La documentación oficial de Morpho advierte claramente: “Warning: Anyone can supply on behalf of the vault so the call to updateWithdrawQueue that expects a market to be empty can be griefed by a front-run.”

Cuando depositas 10,000 USDC en el fondo, la posición de suministro del fondo en ese mercado aumenta en 10,000, y también aumenta totalAssets en 10,000. Pero el total de participaciones (totalSupply) del fondo no cambia — porque no hay una función deposit() que agregue fondos nuevos al fondo.

Resultado: el valor neto por acción se eleva.

Normalmente, esto equivale a “donar” dinero al fondo — tú pagas de tu bolsillo para aumentar las ganancias de todos los accionistas, solo un tonto lo haría. Pero en condiciones específicas, esto puede ser explotado.

  1. Supply Cap = 0 ≠ Seguridad

Tras la despegue de USR, algunos administradores de fondos rápidamente establecieron el Supply Cap del mercado USR/USDC en 0, lo que significa que ya no pueden depositar fondos en ese mercado. ¿Parece que el problema se resolvió?

El problema es que: el Supply Cap es una restricción a nivel del fondo, no a nivel del contrato Morpho Blue.

El administrador del fondo puede controlar solo la función interna _supplyMorpho() del fondo.

Pero supply(onBehalf=vault) interactúa directamente con el contrato Morpho Blue Core, saltándose toda la lógica del nivel del fondo: la cola de suministro (supply queue), el límite de suministro (supply cap), las verificaciones de permisos del asignador, todo eso se omite.

En otras palabras: el administrador del fondo cierra la puerta principal (Cap=0), pero el atacante puede meter dinero directamente por la puerta trasera del Morpho Core.

  1. Oráculo fijo — La máscara invisible de las malas deudas

Este es el segundo punto clave.

El mercado USR/USDC tiene un oráculo configurado en una relación fija 1:1. Es decir, sin importar cuánto caiga USR en el mercado externo, en el mundo de Morpho, 1 USR siempre equivale a 1 USDC.

¿Por qué el administrador del fondo usa un oráculo fijo? Porque USR es una “stablecoin”, normalmente con poca volatilidad. Un oráculo fijo evita “liquidaciones falsas” causadas por fluctuaciones de mercado a corto plazo.

Pero cuando USR realmente se despegó, el oráculo fijo se convirtió en un desastre: los prestatarios usan USR sin valor como garantía para tomar USDC en cantidad, y el protocolo no se entera.

El mecanismo de gestión de malas deudas de Morpho aquí falla por completo: las versiones V1.0 y V1.1, que reflejan en tiempo real y distribuyen las pérdidas, asumen que el protocolo puede identificar las malas deudas.

Con un oráculo fijo, nada puede detectar.

  1. Flujo completo del ataque — ciclo de cinco pasos

Ahora que se cumplen todas las condiciones, las siguientes operaciones atómicas se realizan en una sola transacción:

  1. ¿Por qué se necesita un flashloan?

Este es el problema que más se pasa por alto. La ganancia del ataque proviene de “aumentar artificialmente totalAssets y distribuir la ganancia proporcionalmente a las participaciones”. Si el atacante no usa un flashloan, tendrá una participación del 0% — por mucho que aumente totalAssets, la ganancia se reparte entre otros, y él no obtiene nada.

  1. ¿Quién pierde dinero?

El USDC adicional que el atacante obtiene, 12,300 USDC, no aparece de la nada. Este dinero proviene de la liquidez real en otros mercados saludables del fondo.

Al retirar fondos, el fondo extrae USDC en orden de la cola de retiro (withdraw queue) de los diferentes mercados. Como el mercado USR/USDC ya fue completamente prestado, no puede extraer dinero allí. Por lo tanto, los fondos provienen de otros mercados — por ejemplo, wETH/USDC, cbBTC/USDC, y otros mercados en funcionamiento normal.

  1. La acumulación de tres vulnerabilidades

Este ataque no es causado por una sola vulnerabilidad, sino por la acumulación de tres problemas de diseño:

Conclusión

La filosofía de diseño minimalista de Morpho — sin permisos, inmutable, con gobernanza mínima — suele ser una ventaja. Pero este incidente demuestra que el costo de un diseño minimalista es trasladar una mayor responsabilidad a los participantes de la capa superior.

El protocolo no realiza validación del oráculo, por lo que el administrador debe hacerlo por sí mismo. Sin restricciones en supply(onBehalf), la capa del fondo necesita protecciones adicionales.

Para los depositantes, “elegir un Curator correcto” es más importante que “elegir Morpho”. El protocolo es solo una herramienta; la seguridad de esa herramienta depende de quién la usa.

MORPHO-4,52%
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.
  • Recompensa
  • Comentar
  • Republicar
  • Compartir
Comentar
Añadir un comentario
Añadir un comentario
Sin comentarios
  • Gate Fun en tendencia

    Ver más
  • Cap.M.:$2.28KHolders:1
    0.00%
  • Cap.M.:$2.28KHolders:0
    0.00%
  • Cap.M.:$0.1Holders:1
    0.00%
  • Cap.M.:$2.29KHolders:1
    0.00%
  • Cap.M.:$2.29KHolders:1
    0.00%
  • Anclado