Análise aprofundada: Ataque de manipulação do NAV do empréstimo relâmpago na Morpho Vault após a desancoragem do USR

robot
Geração de resumo em curso

22 de março de 2026, o protocolo Resolv sofreu uma fuga de chaves privadas, permitindo que um atacante criasse do nada 80 milhões de USR sem garantia, fazendo o USR despencar de $1 para $0,025.

As consequências desta catástrofe não ficaram apenas com os detentores de USR; um grupo mais inteligente executou um ataque de manipulação de NAV de cofres na Morpho.

Este artigo irá detalhar passo a passo a lógica por trás deste ataque.

  1. Compreender a arquitetura de duas camadas da Morpho

Antes de falar do ataque, é essencial entender o design da arquitetura da Morpho, caso contrário, tudo ficará incompreensível.

O mundo da Morpho é dividido em duas camadas:

Camada inferior:

Morpho Blue (também chamado Morpho Core). É um protocolo de empréstimo extremamente simples e não atualizável. Sua filosofia de design é “sem permissão” — qualquer pessoa pode criar mercados de empréstimo, depositar, emprestar e liquidar.

Cada mercado é definido por cinco parâmetros únicos: ativo de empréstimo, ativo de garantia, limite de liquidação (LLTV), endereço do oráculo, modelo de taxa de juros.

Os mercados são completamente isolados; um problema em um não afeta os demais.

Camada superior:

MetaMorpho Vault (o cofre). É um cofre padrão ERC-4626, equivalente a um “produto de fundo”.

Usuários depositam USDC no cofre, cujo administrador (Curator) é responsável por alocar esses fundos em diferentes mercados Morpho Blue para emprestar e ganhar juros.

Os usuários possuem cotas do cofre (shares), cujo valor aumenta com os juros acumulados.

Fórmula central — valor líquido por cota (NAV / Price Per Share): Valor líquido por cota = totalAssets / totalSupply

totalAssets é a soma das posições de fornecimento em todos os mercados (incluindo os emprestados, pois são “contas a receber”). totalSupply é o total de cotas emitidas pelo cofre. Com o acúmulo de juros, totalAssets aumenta, mas totalSupply permanece o mesmo, elevando o valor líquido por cota — assim você ganha dinheiro.

  1. supply(onBehalf) — qualquer pessoa pode depositar em nome do cofre

Este é o primeiro ponto-chave do ataque.

Na Morpho Blue, a função supply() possui um parâmetro onBehalf. Essa funcionalidade foi criada para facilitar pagamentos por terceiros — por exemplo, contratos de estratégias automatizadas podem depositar em nome do usuário.

Porém, ela é totalmente sem permissão: qualquer pessoa pode especificar qualquer endereço como onBehalf, incluindo o próprio endereço do cofre.

A documentação oficial da Morpho alerta 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.”

Ao depositar 10.000 USDC em nome do cofre, a posição de fornecimento do cofre naquele mercado aumenta em 10.000, e totalAssets também sobe em 10.000. Mas o total de cotas (totalSupply) do cofre não muda — porque ninguém depositou fundos através da função deposit() do próprio cofre.

Resultado: o valor líquido por cota é inflacionado.

Normalmente, isso equivale a “doar” dinheiro ao cofre — você aumenta os lucros de todos os cotistas às suas custas, o que é uma prática idiota. Mas, sob certas condições, isso pode ser explorado.

  1. Supply Cap = 0 ≠ segurança

Após o USR perder a âncora, alguns administradores de cofres rapidamente definiram o Supply Cap do mercado USR/USDC para 0, impedindo novos depósitos nesse mercado. Parece que o problema foi resolvido?

O problema é que: o Supply Cap é uma limitação ao nível do cofre, não do Morpho Blue.

O administrador do cofre controla apenas a função interna _supplyMorpho() do próprio cofre.

Porém, supply(onBehalf=vault) interage diretamente com o contrato Morpho Blue Core, ignorando toda a lógica do nível do cofre: fila de fornecimento (supply queue), limite de fornecimento (supply cap), verificações de permissão do alocador, etc.

Para ilustrar: o administrador fecha a porta da frente (Cap=0), mas o atacante consegue colocar dinheiro pelo “backdoor” do Morpho Core.

  1. Oráculo fixo — a máscara invisível da inadimplência

Este é o segundo ponto crítico.

O mercado USR/USDC usa um oráculo fixo de 1:1. Ou seja, independentemente de quanto o USR caia no mercado externo, dentro do sistema Morpho, 1 USR sempre equivale a 1 USDC.

Por que o administrador usaria um oráculo fixo? Porque USR é uma “stablecoin”, com pouca volatilidade. Oráculos fixos evitam “liquidações falsas” causadas por oscilações de preço de curto prazo.

Porém, quando o USR realmente perde a âncora, o oráculo fixo se torna uma catástrofe — os tomadores de empréstimo usam USR sem valor como garantia para pegar USDC, e o protocolo não percebe.

O mecanismo de tratamento de inadimplência do Morpho falha aqui — as versões V1.0 e V1.1 dependem de o protocolo detectar inadimplência para ajustar os saldos. Com o oráculo fixo, nada é reconhecido como inadimplente.

Oráculo fixo = incapacidade de detectar inadimplência.

  1. Processo do ataque — ciclo completo em cinco passos

Agora que todas as condições estão presentes, o ataque é uma sequência de operações atômicas em uma única transação:

  1. Por que é necessário um flash loan?

Este é um detalhe frequentemente esquecido. O lucro do ataque vem de “aumentar artificialmente o totalAssets e distribuir o valor por cotas”. Se o atacante não usar um flash loan, ele começará com 0% de cotas — mesmo que ele aumente o totalAssets, o valor extra será distribuído entre os demais cotistas, e ele não ganhará nada.

  1. Quem perde dinheiro?

O USDC extra obtido pelo atacante, cerca de 12.300 USDC, não surge do nada. Essa quantia vem da liquidez real de outros mercados saudáveis do cofre.

Ao resgatar, o cofre retira fundos de diferentes mercados na ordem da fila de retirada (withdraw queue). Como o USR/USDC está sem USDC (devido à fuga), o dinheiro vem de outros mercados — como wETH/USDC, cbBTC/USDC, etc., que continuam operando normalmente.

  1. A soma de três vulnerabilidades

Este ataque não é causado por uma única falha, mas pela combinação de três problemas de design:

Conclusão

A filosofia de design minimalista da Morpho — sem permissão, não atualizável, com governança mínima — geralmente é uma vantagem. Mas este incidente mostra que a simplicidade tem seu preço: ela transfere maior responsabilidade para os participantes de camada superior.

Sem validação de oráculos, o administrador deve cuidar disso. Sem limites de supply(onBehalf), o nível do cofre precisa de proteções adicionais.

Para os depositantes, “escolher um bom Curator” é mais importante do que “escolher Morpho”. O protocolo é uma ferramenta; sua segurança depende de quem a usa.

MORPHO-3,79%
Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
  • Recompensa
  • Comentar
  • Republicar
  • Partilhar
Comentar
Adicionar um comentário
Adicionar um comentário
Nenhum comentário
  • Fixar