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.
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.
16 Curtidas
Recompensa
16
9
Compartilhar
Comentário
0/400
ChainMaskedRider
· 07-14 06:12
Foi uma eliminação total!
Ver originalResponder0
ChainSpy
· 07-13 13:03
Outro idiota que caiu em Empréstimos Flash
Ver originalResponder0
DeFiGrayling
· 07-12 18:27
Outro buraco Rekt
Ver originalResponder0
SignatureVerifier
· 07-12 17:03
validação de entrada claramente insuficiente... *suspira* mais um dia, mais uma exploração
Ver originalResponder0
ForumLurker
· 07-12 17:02
Já disse para não tocar nas Finanças Descentralizadas
Ver originalResponder0
GasFeeCrier
· 07-12 16:59
Mais uma perda que até as calças se foram.
Ver originalResponder0
SundayDegen
· 07-12 16:59
Mais um que morreu repentinamente.
Ver originalResponder0
mev_me_maybe
· 07-12 16:52
Mais uma falha no contrato? Velhos hábitos.
Ver originalResponder0
GasWaster
· 07-12 16:49
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.