O Euler Finance sofreu um ataque de empréstimo flash de 197 milhões de dólares, com uma vulnerabilidade nos contratos inteligentes que provocou enormes perdas.

robot
Geração do resumo em andamento

Euler Finance sofreu ataque de empréstimo flash, com perdas de até 197 milhões de dólares

No dia 13 de março de 2023, o projeto Euler Finance sofreu um grande ataque de empréstimo flash devido a uma vulnerabilidade em seu contrato inteligente. Os atacantes exploraram a falha na falta de verificação de liquidez da função donateToReserves no Etoken, obtendo enormes lucros através de várias chamadas de operações de diferentes moedas. O total de perdas causadas por este ataque atingiu 197 milhões de dólares, envolvendo 6 tipos diferentes de tokens.

Análise de vulnerabilidades da Euler Finance: Como sofreu um ataque de empréstimo flash, com perdas de 197 milhões de dólares!

Análise do processo de ataque

Os passos de operação do atacante são os seguintes:

  1. Pedir emprestado 30 milhões de DAI de uma plataforma de empréstimos flash.
  2. Implantar dois contratos: um para empréstimos e o outro para liquidação.
  3. Colocar 20 milhões de DAI em staking no contrato do Euler Protocol, obtendo 195 mil eDAI.
  4. Usando a funcionalidade de empréstimo alavancado de 10 vezes do Euler Protocol, emprestar 1,956 milhões de eDAI e 2 milhões de dDAI.
  5. Utilizar os 10 milhões de DAI restantes para reembolsar parte da dívida e destruir a quantidade correspondente de dDAI.
  6. Novamente, emprestar 1.956.000 eDAI e 2.000.000 dDAI.
  7. Chame a função donateToReserves e doe 10 vezes o valor do fundo de reembolso (1 milhão de eDAI).
  8. Acionar a função de liquidação, obter 3,1 milhões de dDAI e 2,5 milhões de eDAI.
  9. Retirar 389 mil DAI, devolver 300 mil Empréstimos Flash, lucro final de 88,7 mil DAI.

Análise de vulnerabilidades da Euler Finance: como sofrer um ataque de empréstimo flash, perda de 1.97 milhões de dólares!

Análise de vulnerabilidade da Euler Finance: como sofrer um ataque de empréstimo flash, perda de 197 milhões de dólares!

Análise de vulnerabilidade do Euler Finance: como sofreu ataque de empréstimo flash, perda de 1,97 milhões de dólares!

Análise de vulnerabilidades da Euler Finance: como sofreu um ataque de empréstimo flash, perda de 1,97 milhões de dólares!

Análise de vulnerabilidades da Euler Finance: Como sofrer um ataque de empréstimo flash, perda de 1,97 milhões de dólares!

Análise de vulnerabilidades do Euler Finance: como sofrer um ataque de empréstimo flash, com perdas de 197 milhões de dólares!

Análise de vulnerabilidades do Euler Finance: como sofrer um ataque de empréstimo flash, perda de 197 milhões de dólares!

Análise de Vulnerabilidade da Euler Finance: Como Sofrer um Ataque de Empréstimo Flash, Perda de 1,97 Bilhões de Dólares!

Análise de Vulnerabilidades

A chave para o sucesso do ataque foi a falta de uma verificação de liquidez necessária na função donateToReserves da Euler Finance. Comparado a outras funções críticas (como mint), a função donateToReserves não executou o passo checkLiquidity. Esta negligência permitiu que os usuários manipulassem o estado das suas contas para que se qualificassem para serem liquidadas e, em seguida, lucrassem com a liquidação.

Em condições normais, a função checkLiquidity chamaria o módulo RiskManager, garantindo que o Etoken do usuário seja sempre maior que o Dtoken, para manter a saúde do sistema. No entanto, devido à falta dessa verificação crucial na função donateToReserves, os atacantes conseguiram contornar os mecanismos de segurança do sistema.

Análise de Vulnerabilidades da Euler Finance: Como Sofreu um ataque de empréstimo flash, com perda de 1,97 bilhões de dólares!

Recomendações de Segurança

Para este tipo de ataque, apresentamos as seguintes recomendações de segurança:

  1. Antes de lançar o contrato inteligente, deve ser realizada uma auditoria de segurança abrangente.
  2. Projetos de empréstimo devem prestar especial atenção a aspectos críticos como reembolso de fundos, detecção de liquidez e liquidação de dívidas.
  3. Certifique-se de que todas as funções que possam afetar o estado dos ativos dos usuários incluam as verificações de segurança necessárias.
  4. Realizar regularmente revisões de código para garantir que as novas funcionalidades não introduzam vulnerabilidades potenciais.
  5. Estabelecer um mecanismo de resposta a emergências, para que se possa reagir rapidamente em caso de eventos de segurança.

Este incidente destaca novamente a importância da segurança dos contratos inteligentes. As equipes de projeto devem sempre priorizar a segurança, protegendo os ativos dos usuários através de práticas de segurança contínuas e auditorias.

Análise de vulnerabilidade do Euler Finance: como sofreu um ataque de empréstimo flash, com perdas de 197 milhões de dólares!

EUL-3.77%
Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
  • Recompensa
  • 7
  • Repostar
  • Compartilhar
Comentário
0/400
TheMemefathervip
· 08-02 02:56
O contrato teve outro acidente.
Ver originalResponder0
MetaEggplantvip
· 07-30 18:24
Mais uma cena de roubo de moeda devido a uma falha.
Ver originalResponder0
RugPullProphetvip
· 07-30 18:22
Outra vez a festa de puxar o tapete, hein?
Ver originalResponder0
LiquidationWatchervip
· 07-30 18:22
Mais uma morte por vulnerabilidade inteligente
Ver originalResponder0
CryptoNomicsvip
· 07-30 18:12
Revisão de código falhou
Ver originalResponder0
PaperHandsCriminalvip
· 07-30 18:11
Mais um contrato virou comum.
Ver originalResponder0
GateUser-afe07a92vip
· 07-30 17:56
Outra vez perdeu-se um dinheiro suado.
Ver originalResponder0
Faça trade de criptomoedas em qualquer lugar e a qualquer hora
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)