O Hack de $200K da UniLend: O Que Deu Errado e Como o DeFi Pode Fazer Melhor

Intermediário1/22/2025, 4:23:33 PM
UniLend foi explorado devido a uma vulnerabilidade, levando ao roubo de aproximadamente $200K (4% do TVL). O atacante usou um empréstimo flash para depositar 60 milhões de USDC, manipulou cálculos de garantia e explorou um erro de contrato no processo de verificação de saúde para inflar o valor da garantia, retirando 60 stETH. A falha decorreu da implementação defeituosa da função userBalanceOfToken. UniLend já corrigiu o problema, pausou os depósitos V2 e ofereceu uma recompensa para recuperar os fundos. Este incidente destaca a importância crítica da segurança para as plataformas DeFi e a necessidade de auditorias minuciosas de contratos inteligentes.

Introdução ao UniLend

@UniLend_Financeé um protocolo de mercado monetário descentralizado sem permissão com serviço de empréstimo e empréstimo através de contratos inteligentes.

A UniLend permite que os usuários utilizem suas criptomoedas fornecendo garantias à rede, que podem ser emprestadas ao disponibilizar criptomoedas supercolateralizadas. Isso cria um ambiente seguro de empréstimo em que o credor recebe uma taxa de juros composta anualmente (APY) paga por bloco, enquanto o mutuário paga juros sobre a criptomoeda emprestada.

Como UniLend Opera

O Protocolo UniLend V2 funciona através de três componentes técnicos principais:

1. Modelo de Pool de Ativos Duplos

A UniLend utiliza piscinas de ativos duplos isolados para cada par ERC20/ERC20-compatível. Este design garante que o desempenho ou volatilidade de um ativo não afete outros, melhorando a segurança e a estabilidade. A arquitetura permite que qualquer usuário crie e gerencie piscinas de empréstimos e empréstimos para uma ampla variedade de ativos em várias blockchains.

2. Fornecimento e Empréstimo

  • Fornecimento: Os utilizadores depositam tokens ERC20 em pools designadas e recebem Tokens Não Fungíveis (NFTs) que representam as suas posições de liquidez únicas. Estes NFTs armazenam detalhes sobre os ativos fornecidos e podem ser transferidos ou resgatados conforme necessário. Os ativos fornecidos ganham juros variáveis com base na utilização da pool e na procura do mercado.
  • Empréstimo: Para emprestar, os usuários devem fornecer criptomoedas com supercolateralização. O protocolo impõe taxas de colateralização, ajustáveis através da governança. Os montantes emprestados acumulam juros por bloco, determinados pela taxa de utilização da pool, garantindo que os empréstimos permaneçam adequadamente garantidos.

3. Modelo de Taxa de Juros

O UniLend emprega um modelo dinâmico de taxa de juros baseado na Taxa de Utilização (U) da pool, calculada como:

Ux = EmprestarxEmprestarx + Dinheirox

Taxa de Juros para Empréstimos:

Taxa de juros de empréstimo x=10%+(Ux×30%)

As taxas aumentam com maior utilização para equilibrar oferta e procura.

  • Taxa de Juros de Fornecimento:

Taxa de juros de fornecimento = Taxa de juros de empréstimo x Ux x (1-S)

Isso garante que os fornecedores obtenham retornos sustentáveis, enquanto o protocolo permanece rentável.

Estes componentes trabalham juntos para criar um mercado monetário descentralizado seguro, eficiente e escalável.

Análise de ataques

Em 12 de janeiro de 2025, uma vulnerabilidade de segurança no protocolo UniLend foi explorada, resultando na perda de aproximadamente $200.000 do UniLend Pool. O atacante manipulou os cálculos de garantia, que avaliaram incorretamente o fator de saúde do usuário. Essa falha permitiu que o atacante retirasse 60 tokens stETH sem garantia adequada.

Os ativos roubados incluíram 60 tokens stETH, aproveitando a má contabilização dos saldos de token do usuário pelo protocolo.

Detalhamento detalhado do ataque

1. Inicialização de Exploração

O atacante iniciou a exploração alavancando um empréstimo instantâneo para depositar uma quantidade massiva de USDC na pool UniLend. Especificamente, eles depositaram 60 milhões de USDC, inflacionando significativamente seu colateral dentro da pool.

Os empréstimos relâmpago permitem aos utilizadores tomar emprestadas grandes quantidades de ativos sem garantia, desde que o montante emprestado seja devolvido na mesma transação.

O atacante utilizou esse mecanismo para obter o USDC necessário sem capital inicial, criando assim uma posição artificialmente inflacionada dentro da pool.

2. Manipulação de Cálculos de Garantia

Ao depositar o USDC, o atacante procedeu a emprestar tokens stETH. O protocolo calcula o valor do colateral do usuário com base no saldo de tokens na piscina. No entanto, devido à implementação defeituosa, o saldo foi calculado usando o saldo atual de tokens no contrato da piscina em vez do valor real transferido durante a verificação do fator de saúde. Essa discrepância significava que o saldo de tokens do usuário parecia significativamente mais alto do que realmente era, especialmente em piscinas com grande liquidez.

A raiz desta manipulação reside na função userBalanceOfToken. Em cenários em que o pool tem uma liquidez substancial, esta função pode devolver um alto lendBalance mesmo quando há apenas uma pequena parte do empréstimo restante. Esta superestimação do saldo do utilizador deu ao atacante a ilusão de ter mais garantias do que realmente possuía. Como resultado, o atacante conseguiu emprestar tokens stETH além do que lhes era devido com base nas suas garantias reais.

3. Resgate de Ativos Subjacentes

Com o valor inflacionado do colateral, o atacante prosseguiu para resgatar seus USDC e stETH. A função redeemUnderlying foi chamada, o que queimou os tokens LP associados ao depósito do usuário. No entanto, devido à verificação falha do fator de saúde ocorrendo antes da transferência de tokens, o sistema acreditava que o usuário tinha colateral suficiente para sacar mais do que tinha direito. Essa falha permitiu ao atacante sacar 60 tokens de stETH sem manter o colateral necessário, obtendo efetivamente esses tokens de graça.

Como o Ataque Poderia Ter Sido Prevenido

Para evitar o ataque, a UniLend deveria ter reordenado as operações dentro da função redeemUnderlying. Ao realizar a verificação do fator de saúde após a transferência de tokens para o usuário, o protocolo garantiria que o saldo real de tokens do usuário refletisse com precisão seu status de garantia.

A segurança da blockchain não é opcional. Proteja seus contratos inteligentes e protocolos DeFi com a Three Sigma, uma parceira confiável em auditorias de blockchain, avaliações de vulnerabilidades de contratos inteligentes e segurança Web3.

Clique paraObtenha a auditoria do seu smart contract hoje.

Consequências

A exploração do UniLend resultou em uma perda financeira significativa de aproximadamente $200,000 do pool do UniLend. Essa perda substancial impactou diretamente as reservas da plataforma e reduziu a liquidez disponível para outros usuários, potencialmente interrompendo atividades de empréstimo e empréstimo em andamento.

A resposta do Protocolo UniLend

Após a exploração, UniLend tomou medidas imediatas para lidar com a vulnerabilidade e tranquilizar sua base de usuários.

Anunciaram uma recompensa de 20% para a parte responsável pelo retorno seguro dos fundos.

Endereços

Transação de Ataque:

Endereço do Explorador:

Endereço UnilendV2Core:

Aviso Legal:

  1. Este artigo é reeditado a partir de [X]. Todos os direitos autorais pertencem ao autor original [@threesigmaxyz]. Se houver objeções a esta reedição, por favor, entre em contato com o Gate Learnequipa, e eles vão tratar disso prontamente.
  2. Aviso de responsabilidade: As opiniões expressas neste artigo são exclusivamente as do autor e não constituem qualquer conselho de investimento.
  3. A equipe Learn da gate faz traduções do artigo para outros idiomas. A menos que seja mencionado, copiar, distribuir ou plagiar os artigos traduzidos é proibido.

O Hack de $200K da UniLend: O Que Deu Errado e Como o DeFi Pode Fazer Melhor

Intermediário1/22/2025, 4:23:33 PM
UniLend foi explorado devido a uma vulnerabilidade, levando ao roubo de aproximadamente $200K (4% do TVL). O atacante usou um empréstimo flash para depositar 60 milhões de USDC, manipulou cálculos de garantia e explorou um erro de contrato no processo de verificação de saúde para inflar o valor da garantia, retirando 60 stETH. A falha decorreu da implementação defeituosa da função userBalanceOfToken. UniLend já corrigiu o problema, pausou os depósitos V2 e ofereceu uma recompensa para recuperar os fundos. Este incidente destaca a importância crítica da segurança para as plataformas DeFi e a necessidade de auditorias minuciosas de contratos inteligentes.

Introdução ao UniLend

@UniLend_Financeé um protocolo de mercado monetário descentralizado sem permissão com serviço de empréstimo e empréstimo através de contratos inteligentes.

A UniLend permite que os usuários utilizem suas criptomoedas fornecendo garantias à rede, que podem ser emprestadas ao disponibilizar criptomoedas supercolateralizadas. Isso cria um ambiente seguro de empréstimo em que o credor recebe uma taxa de juros composta anualmente (APY) paga por bloco, enquanto o mutuário paga juros sobre a criptomoeda emprestada.

Como UniLend Opera

O Protocolo UniLend V2 funciona através de três componentes técnicos principais:

1. Modelo de Pool de Ativos Duplos

A UniLend utiliza piscinas de ativos duplos isolados para cada par ERC20/ERC20-compatível. Este design garante que o desempenho ou volatilidade de um ativo não afete outros, melhorando a segurança e a estabilidade. A arquitetura permite que qualquer usuário crie e gerencie piscinas de empréstimos e empréstimos para uma ampla variedade de ativos em várias blockchains.

2. Fornecimento e Empréstimo

  • Fornecimento: Os utilizadores depositam tokens ERC20 em pools designadas e recebem Tokens Não Fungíveis (NFTs) que representam as suas posições de liquidez únicas. Estes NFTs armazenam detalhes sobre os ativos fornecidos e podem ser transferidos ou resgatados conforme necessário. Os ativos fornecidos ganham juros variáveis com base na utilização da pool e na procura do mercado.
  • Empréstimo: Para emprestar, os usuários devem fornecer criptomoedas com supercolateralização. O protocolo impõe taxas de colateralização, ajustáveis através da governança. Os montantes emprestados acumulam juros por bloco, determinados pela taxa de utilização da pool, garantindo que os empréstimos permaneçam adequadamente garantidos.

3. Modelo de Taxa de Juros

O UniLend emprega um modelo dinâmico de taxa de juros baseado na Taxa de Utilização (U) da pool, calculada como:

Ux = EmprestarxEmprestarx + Dinheirox

Taxa de Juros para Empréstimos:

Taxa de juros de empréstimo x=10%+(Ux×30%)

As taxas aumentam com maior utilização para equilibrar oferta e procura.

  • Taxa de Juros de Fornecimento:

Taxa de juros de fornecimento = Taxa de juros de empréstimo x Ux x (1-S)

Isso garante que os fornecedores obtenham retornos sustentáveis, enquanto o protocolo permanece rentável.

Estes componentes trabalham juntos para criar um mercado monetário descentralizado seguro, eficiente e escalável.

Análise de ataques

Em 12 de janeiro de 2025, uma vulnerabilidade de segurança no protocolo UniLend foi explorada, resultando na perda de aproximadamente $200.000 do UniLend Pool. O atacante manipulou os cálculos de garantia, que avaliaram incorretamente o fator de saúde do usuário. Essa falha permitiu que o atacante retirasse 60 tokens stETH sem garantia adequada.

Os ativos roubados incluíram 60 tokens stETH, aproveitando a má contabilização dos saldos de token do usuário pelo protocolo.

Detalhamento detalhado do ataque

1. Inicialização de Exploração

O atacante iniciou a exploração alavancando um empréstimo instantâneo para depositar uma quantidade massiva de USDC na pool UniLend. Especificamente, eles depositaram 60 milhões de USDC, inflacionando significativamente seu colateral dentro da pool.

Os empréstimos relâmpago permitem aos utilizadores tomar emprestadas grandes quantidades de ativos sem garantia, desde que o montante emprestado seja devolvido na mesma transação.

O atacante utilizou esse mecanismo para obter o USDC necessário sem capital inicial, criando assim uma posição artificialmente inflacionada dentro da pool.

2. Manipulação de Cálculos de Garantia

Ao depositar o USDC, o atacante procedeu a emprestar tokens stETH. O protocolo calcula o valor do colateral do usuário com base no saldo de tokens na piscina. No entanto, devido à implementação defeituosa, o saldo foi calculado usando o saldo atual de tokens no contrato da piscina em vez do valor real transferido durante a verificação do fator de saúde. Essa discrepância significava que o saldo de tokens do usuário parecia significativamente mais alto do que realmente era, especialmente em piscinas com grande liquidez.

A raiz desta manipulação reside na função userBalanceOfToken. Em cenários em que o pool tem uma liquidez substancial, esta função pode devolver um alto lendBalance mesmo quando há apenas uma pequena parte do empréstimo restante. Esta superestimação do saldo do utilizador deu ao atacante a ilusão de ter mais garantias do que realmente possuía. Como resultado, o atacante conseguiu emprestar tokens stETH além do que lhes era devido com base nas suas garantias reais.

3. Resgate de Ativos Subjacentes

Com o valor inflacionado do colateral, o atacante prosseguiu para resgatar seus USDC e stETH. A função redeemUnderlying foi chamada, o que queimou os tokens LP associados ao depósito do usuário. No entanto, devido à verificação falha do fator de saúde ocorrendo antes da transferência de tokens, o sistema acreditava que o usuário tinha colateral suficiente para sacar mais do que tinha direito. Essa falha permitiu ao atacante sacar 60 tokens de stETH sem manter o colateral necessário, obtendo efetivamente esses tokens de graça.

Como o Ataque Poderia Ter Sido Prevenido

Para evitar o ataque, a UniLend deveria ter reordenado as operações dentro da função redeemUnderlying. Ao realizar a verificação do fator de saúde após a transferência de tokens para o usuário, o protocolo garantiria que o saldo real de tokens do usuário refletisse com precisão seu status de garantia.

A segurança da blockchain não é opcional. Proteja seus contratos inteligentes e protocolos DeFi com a Three Sigma, uma parceira confiável em auditorias de blockchain, avaliações de vulnerabilidades de contratos inteligentes e segurança Web3.

Clique paraObtenha a auditoria do seu smart contract hoje.

Consequências

A exploração do UniLend resultou em uma perda financeira significativa de aproximadamente $200,000 do pool do UniLend. Essa perda substancial impactou diretamente as reservas da plataforma e reduziu a liquidez disponível para outros usuários, potencialmente interrompendo atividades de empréstimo e empréstimo em andamento.

A resposta do Protocolo UniLend

Após a exploração, UniLend tomou medidas imediatas para lidar com a vulnerabilidade e tranquilizar sua base de usuários.

Anunciaram uma recompensa de 20% para a parte responsável pelo retorno seguro dos fundos.

Endereços

Transação de Ataque:

Endereço do Explorador:

Endereço UnilendV2Core:

Aviso Legal:

  1. Este artigo é reeditado a partir de [X]. Todos os direitos autorais pertencem ao autor original [@threesigmaxyz]. Se houver objeções a esta reedição, por favor, entre em contato com o Gate Learnequipa, e eles vão tratar disso prontamente.
  2. Aviso de responsabilidade: As opiniões expressas neste artigo são exclusivamente as do autor e não constituem qualquer conselho de investimento.
  3. A equipe Learn da gate faz traduções do artigo para outros idiomas. A menos que seja mencionado, copiar, distribuir ou plagiar os artigos traduzidos é proibido.
Comece agora
Registe-se e ganhe um cupão de
100 USD
!