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

intermediário1/22/2025, 4:23:33 PM
UniLend foi explorado devido a uma vulnerabilidade, resultando no 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 bug no 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 do V2 e ofereceu uma recompensa para recuperar os fundos. Esse 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 de dinheiro descentralizado sem permissão, com serviço de empréstimo e empréstimo por meio de contratos inteligentes.

UniLend permite aos usuários utilizar suas criptomoedas fornecendo garantia à rede que pode ser emprestada ao comprometer criptomoedas supergarantidas. Isso cria um ambiente de empréstimo seguro onde o credor recebe uma taxa de juros composta anualmente (APY) paga por bloco, enquanto o mutuário paga juros sobre a criptomoeda emprestada.

Como a UniLend Opera

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

1. Modelo de Pool de Ativos Duplos

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

2. Fornecimento e Empréstimo

  • Fornecimento: Os usuários depositam tokens ERC20 em pools designadas e recebem Tokens Não Fungíveis (NFTs) que representam suas posições de liquidez únicas. Esses 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 demanda de mercado.
  • Empréstimo: Para pedir empréstimo, os usuários devem fornecer criptomoedas supercolateralizadas. O protocolo impõe índices de colateralização, ajustáveis por meio de governança. Os valores emprestados acumulam juros por bloco, determinados pela taxa de utilização do pool, garantindo que os empréstimos permaneçam adequadamente garantidos.

3. Modelo de Taxa de Juros

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 de Empréstimo:

Taxa de Juros de Empréstimo x = 10% + (Ux × 30%)

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

  • 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 ganhem retornos sustentáveis enquanto o protocolo permanece lucrativo.

Esses 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 da piscina UniLend. O invasor manipulou os cálculos de garantia, que avaliaram incorretamente o fator de saúde do usuário. Essa falha permitiu que o invasor sacasse 60 tokens stETH sem garantia adequada de respaldo.

Os ativos roubados incluíram 60 tokens stETH, aproveitando o erro de cálculo do protocolo dos saldos de tokens do usuário.

Detalhamento detalhado do ataque

1. Inicialização da Exploração

O atacante iniciou a exploração aproveitando um empréstimo instantâneo para depositar uma quantidade maciça de USDC na pool UniLend. Especificamente, eles depositaram 60 milhões de USDC, inflando significativamente sua garantia dentro da pool.

Empréstimos relâmpago permitem que os usuários tomem empréstimos de grandes quantidades de ativos sem a necessidade de garantia, desde que o valor 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 inflada dentro do pool.

2. Manipulação dos Cálculos de Colateral

Após depositar o USDC, o atacante procedeu a tomar emprestado tokens stETH. O protocolo calcula o valor do colateral do usuário com base no saldo de tokens dentro do pool. No entanto, devido à implementação com falha, o saldo foi calculado usando o saldo atual de tokens no contrato do pool em vez do valor transferido real durante a verificação do fator de saúde. Essa discrepância significava que o saldo de tokens do usuário parecia significativamente maior do que realmente era, especialmente em pools com grande liquidez.

A raiz dessa manipulação está na função userBalanceOfToken. Em cenários em que o pool tem liquidez substancial, essa função pode retornar um lendBalance alto mesmo quando resta apenas uma pequena parte do empréstimo. Essa superestimação do saldo do usuário forneceu ao atacante a ilusão de possuir mais garantias do que realmente possuía. Consequentemente, o atacante poderia pegar emprestado tokens stETH além do que lhe era de direito com base em suas garantias reais.

3. Resgatando Ativos Subjacentes

Com o valor inflacionado do colateral, o atacante procedeu a 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 dos tokens, o sistema acreditava que o usuário tinha colateral suficiente para sacar mais do que tinha direito. Essa falha permitiu que o atacante sacasse 60 tokens stETH sem manter o colateral necessário, obtendo efetivamente esses tokens gratuitamente.

Como o Ataque Poderia Ter Sido Prevenido

Para evitar o ataque, 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 Three Sigma, um parceiro de segurança confiável em auditorias de blockchain, avaliações de vulnerabilidade de contratos inteligentes e segurança Web3.

Clique paraObtenha hoje a auditoria do seu Smart Contract.

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 as atividades de empréstimo e empréstimo em andamento.

A resposta do Protocolo UniLend

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

Eles 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 é reimpresso de [X]. Todos os direitos autorais pertencem ao autor original [@threesigmaxyz]. Se houver objeções a esta reprodução, entre em contato com o Gate Learntime, e eles vão lidar com isso prontamente.
  2. Aviso de responsabilidade: As visões e opiniões expressas neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. A equipe de tradução da gate Learn 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 UniLend: O Que Deu Errado e Como DeFi Pode Fazer Melhor

intermediário1/22/2025, 4:23:33 PM
UniLend foi explorado devido a uma vulnerabilidade, resultando no 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 bug no 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 do V2 e ofereceu uma recompensa para recuperar os fundos. Esse 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 de dinheiro descentralizado sem permissão, com serviço de empréstimo e empréstimo por meio de contratos inteligentes.

UniLend permite aos usuários utilizar suas criptomoedas fornecendo garantia à rede que pode ser emprestada ao comprometer criptomoedas supergarantidas. Isso cria um ambiente de empréstimo seguro onde o credor recebe uma taxa de juros composta anualmente (APY) paga por bloco, enquanto o mutuário paga juros sobre a criptomoeda emprestada.

Como a UniLend Opera

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

1. Modelo de Pool de Ativos Duplos

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

2. Fornecimento e Empréstimo

  • Fornecimento: Os usuários depositam tokens ERC20 em pools designadas e recebem Tokens Não Fungíveis (NFTs) que representam suas posições de liquidez únicas. Esses 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 demanda de mercado.
  • Empréstimo: Para pedir empréstimo, os usuários devem fornecer criptomoedas supercolateralizadas. O protocolo impõe índices de colateralização, ajustáveis por meio de governança. Os valores emprestados acumulam juros por bloco, determinados pela taxa de utilização do pool, garantindo que os empréstimos permaneçam adequadamente garantidos.

3. Modelo de Taxa de Juros

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 de Empréstimo:

Taxa de Juros de Empréstimo x = 10% + (Ux × 30%)

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

  • 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 ganhem retornos sustentáveis enquanto o protocolo permanece lucrativo.

Esses 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 da piscina UniLend. O invasor manipulou os cálculos de garantia, que avaliaram incorretamente o fator de saúde do usuário. Essa falha permitiu que o invasor sacasse 60 tokens stETH sem garantia adequada de respaldo.

Os ativos roubados incluíram 60 tokens stETH, aproveitando o erro de cálculo do protocolo dos saldos de tokens do usuário.

Detalhamento detalhado do ataque

1. Inicialização da Exploração

O atacante iniciou a exploração aproveitando um empréstimo instantâneo para depositar uma quantidade maciça de USDC na pool UniLend. Especificamente, eles depositaram 60 milhões de USDC, inflando significativamente sua garantia dentro da pool.

Empréstimos relâmpago permitem que os usuários tomem empréstimos de grandes quantidades de ativos sem a necessidade de garantia, desde que o valor 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 inflada dentro do pool.

2. Manipulação dos Cálculos de Colateral

Após depositar o USDC, o atacante procedeu a tomar emprestado tokens stETH. O protocolo calcula o valor do colateral do usuário com base no saldo de tokens dentro do pool. No entanto, devido à implementação com falha, o saldo foi calculado usando o saldo atual de tokens no contrato do pool em vez do valor transferido real durante a verificação do fator de saúde. Essa discrepância significava que o saldo de tokens do usuário parecia significativamente maior do que realmente era, especialmente em pools com grande liquidez.

A raiz dessa manipulação está na função userBalanceOfToken. Em cenários em que o pool tem liquidez substancial, essa função pode retornar um lendBalance alto mesmo quando resta apenas uma pequena parte do empréstimo. Essa superestimação do saldo do usuário forneceu ao atacante a ilusão de possuir mais garantias do que realmente possuía. Consequentemente, o atacante poderia pegar emprestado tokens stETH além do que lhe era de direito com base em suas garantias reais.

3. Resgatando Ativos Subjacentes

Com o valor inflacionado do colateral, o atacante procedeu a 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 dos tokens, o sistema acreditava que o usuário tinha colateral suficiente para sacar mais do que tinha direito. Essa falha permitiu que o atacante sacasse 60 tokens stETH sem manter o colateral necessário, obtendo efetivamente esses tokens gratuitamente.

Como o Ataque Poderia Ter Sido Prevenido

Para evitar o ataque, 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 Three Sigma, um parceiro de segurança confiável em auditorias de blockchain, avaliações de vulnerabilidade de contratos inteligentes e segurança Web3.

Clique paraObtenha hoje a auditoria do seu Smart Contract.

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 as atividades de empréstimo e empréstimo em andamento.

A resposta do Protocolo UniLend

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

Eles 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 é reimpresso de [X]. Todos os direitos autorais pertencem ao autor original [@threesigmaxyz]. Se houver objeções a esta reprodução, entre em contato com o Gate Learntime, e eles vão lidar com isso prontamente.
  2. Aviso de responsabilidade: As visões e opiniões expressas neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. A equipe de tradução da gate Learn faz traduções do artigo para outros idiomas. A menos que seja mencionado, copiar, distribuir ou plagiar os artigos traduzidos é proibido.
Bắt đầu giao dịch
Đăng ký và giao dịch để nhận phần thưởng USDTEST trị giá
$100
$5500