@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.
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
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 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.
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.
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.
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.
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.
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.
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.
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:
@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.
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
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 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.
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.
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.
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.
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.
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.
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.
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: