Euler Finance sofreu ataque de empréstimo flash, com perdas de quase 200 milhões de dólares
No dia 13 de março de 2023, o projeto Euler Finance sofreu um ataque de empréstimo flash devido a uma vulnerabilidade no contrato, resultando em uma perda significativa de cerca de 197 milhões de dólares. O atacante explorou a falha na função donateToReserves do Etoken do projeto, que carecia de verificação de liquidez, obtendo lucros substanciais através de várias operações com diferentes moedas.
Análise do Processo de Ataque
O atacante primeiro obteve um empréstimo flash de 30 milhões de DAI de uma plataforma de empréstimos, em seguida, implantou dois contratos: um para empréstimo e outro para liquidação. Os principais passos do ataque são os seguintes:
Colocar 20 milhões de DAI em garantia no contrato do Euler Protocol, obtendo 19,5 milhões de eDAI.
Utilizando a função de empréstimo com alavancagem de 10x do Euler Protocol, empreste 195,6 milhões de eDAI e 200 milhões de dDAI.
Usar os restantes 10 milhões DAI para pagar parte da dívida e destruir a quantidade correspondente de dDAI, e depois emprestar novamente a mesma quantidade de eDAI e dDAI.
Doar 100 milhões de eDAI através da função donateToReserves, em seguida, chamar a função liquidate para realizar a liquidação, obtendo 310 milhões de dDAI e 250 milhões de eDAI.
Por fim, retirou 38,9 milhões de DAI, devolvendo os Empréstimos Flash e obtendo um lucro de cerca de 8,87 milhões de DAI.
Causa da vulnerabilidade
A principal razão pela qual o ataque foi bem-sucedido é a falta de uma verificação de liquidez necessária na função donateToReserves do contrato Euler Finance. Ao contrário de outras funções críticas como mint, a função donateToReserves não chama checkLiquidity para a validação da liquidez do usuário, permitindo que o atacante manipule o estado da sua conta para que ele atenda às condições de liquidação, completando assim o ataque.
Sugestões de segurança
Para este tipo de ataque, recomenda-se que os projetos DeFi:
Realizar uma auditoria de segurança abrangente antes do lançamento do contrato, garantindo a segurança do código.
Preste especial atenção aos principais aspectos, como reembolso de fundos, detecção de liquidez e liquidação de dívidas, em projetos de empréstimos.
Garantir que todas as funções que possam afetar o estado dos ativos dos usuários implementem verificações de segurança rigorosas.
Realizar regularmente varreduras de vulnerabilidades e avaliações de segurança, corrigindo prontamente riscos potenciais.
Estabelecer um mecanismo de resposta a emergências para reagir e lidar rapidamente em caso de eventos de segurança.
Este incidente destaca novamente a importância da segurança dos contratos inteligentes, lembrando os desenvolvedores e usuários de projetos Web3 a manterem-se sempre alertas, para juntos preservarem a segurança e a estabilidade do ecossistema blockchain.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
13 Curtidas
Recompensa
13
7
Compartilhar
Comentário
0/400
DeFiGrayling
· 9h atrás
Outro buraco Rekt
Ver originalResponder0
SignatureVerifier
· 11h atrás
validação de entrada claramente insuficiente... *suspira* mais um dia, mais uma exploração
Ver originalResponder0
ForumLurker
· 11h atrás
Já disse para não tocar nas Finanças Descentralizadas
Ver originalResponder0
GasFeeCrier
· 11h atrás
Mais uma perda que até as calças se foram.
Ver originalResponder0
SundayDegen
· 11h atrás
Mais um que morreu repentinamente.
Ver originalResponder0
mev_me_maybe
· 11h atrás
Mais uma falha no contrato? Velhos hábitos.
Ver originalResponder0
GasWaster
· 11h atrás
bruh mais um dia, mais uma exploração... gás desperdiçado em auditorias falhadas smh
Euler Finance sofreu um ataque de empréstimo flash de 200 milhões de dólares, com falha no contrato como a principal causa.
Euler Finance sofreu ataque de empréstimo flash, com perdas de quase 200 milhões de dólares
No dia 13 de março de 2023, o projeto Euler Finance sofreu um ataque de empréstimo flash devido a uma vulnerabilidade no contrato, resultando em uma perda significativa de cerca de 197 milhões de dólares. O atacante explorou a falha na função donateToReserves do Etoken do projeto, que carecia de verificação de liquidez, obtendo lucros substanciais através de várias operações com diferentes moedas.
Análise do Processo de Ataque
O atacante primeiro obteve um empréstimo flash de 30 milhões de DAI de uma plataforma de empréstimos, em seguida, implantou dois contratos: um para empréstimo e outro para liquidação. Os principais passos do ataque são os seguintes:
Colocar 20 milhões de DAI em garantia no contrato do Euler Protocol, obtendo 19,5 milhões de eDAI.
Utilizando a função de empréstimo com alavancagem de 10x do Euler Protocol, empreste 195,6 milhões de eDAI e 200 milhões de dDAI.
Usar os restantes 10 milhões DAI para pagar parte da dívida e destruir a quantidade correspondente de dDAI, e depois emprestar novamente a mesma quantidade de eDAI e dDAI.
Doar 100 milhões de eDAI através da função donateToReserves, em seguida, chamar a função liquidate para realizar a liquidação, obtendo 310 milhões de dDAI e 250 milhões de eDAI.
Por fim, retirou 38,9 milhões de DAI, devolvendo os Empréstimos Flash e obtendo um lucro de cerca de 8,87 milhões de DAI.
Causa da vulnerabilidade
A principal razão pela qual o ataque foi bem-sucedido é a falta de uma verificação de liquidez necessária na função donateToReserves do contrato Euler Finance. Ao contrário de outras funções críticas como mint, a função donateToReserves não chama checkLiquidity para a validação da liquidez do usuário, permitindo que o atacante manipule o estado da sua conta para que ele atenda às condições de liquidação, completando assim o ataque.
Sugestões de segurança
Para este tipo de ataque, recomenda-se que os projetos DeFi:
Realizar uma auditoria de segurança abrangente antes do lançamento do contrato, garantindo a segurança do código.
Preste especial atenção aos principais aspectos, como reembolso de fundos, detecção de liquidez e liquidação de dívidas, em projetos de empréstimos.
Garantir que todas as funções que possam afetar o estado dos ativos dos usuários implementem verificações de segurança rigorosas.
Realizar regularmente varreduras de vulnerabilidades e avaliações de segurança, corrigindo prontamente riscos potenciais.
Estabelecer um mecanismo de resposta a emergências para reagir e lidar rapidamente em caso de eventos de segurança.
Este incidente destaca novamente a importância da segurança dos contratos inteligentes, lembrando os desenvolvedores e usuários de projetos Web3 a manterem-se sempre alertas, para juntos preservarem a segurança e a estabilidade do ecossistema blockchain.