Euler Finance sofreu ataque de empréstimo flash, com perdas de quase 200 milhões de dólares.
Em 13 de março de 2023, o projeto Euler Finance sofreu um grande ataque de empréstimo flash devido a uma vulnerabilidade na função donateToReserves do seu contrato Etoken. O atacante utilizou vários tokens para realizar múltiplas operações, resultando em uma perda colossal de cerca de 197 milhões de dólares.
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-chave: um para operações de empréstimo e outro para liquidação. O processo de ataque pode ser dividido nas seguintes etapas:
Pledge 20 milhões de DAI no contrato do Euler Protocol, obtendo cerca de 19,5 milhões de eDAI.
Usando a funcionalidade de alavancagem de 10 vezes do Protocolo Euler, emprestar 195,6 milhões de eDAI e 200 milhões de dDAI.
Usar os restantes 10 milhões DAI para reembolsar parte da dívida e destruir a quantidade correspondente de dDAI, e depois voltar a emprestar a mesma quantidade de eDAI e dDAI.
Doar 100 milhões de eDAI através da função donateToReserves, e 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, e após reembolsar o Empréstimos Flash, lucrou cerca de 8,87 milhões de DAI.
Análise da causa da vulnerabilidade
O problema central deste ataque reside na função donateToReserves, que carece de uma verificação de liquidez necessária. Comparada à função mint, a função donateToReserves não executa o passo checkLiquidity, permitindo que os usuários contornem o mecanismo normal de verificação de liquidez.
Normalmente, a função checkLiquidity chamaria o módulo RiskManager para garantir que a quantidade de Etokens do usuário seja maior do que a quantidade de Dtokens. No entanto, como a função donateToReserves pulou essa etapa, o atacante conseguiu se colocar em um estado que poderia ser liquidado antes de completar a operação de liquidação.
Sugestões de Segurança
Em relação a esse tipo de vulnerabilidade, recomendamos aos projetos DeFi:
Realizar uma auditoria de segurança abrangente antes do lançamento do contrato, garantindo a segurança do contrato.
Prestar especial atenção aos momentos-chave como reembolso de fundos, detecção de liquidez e liquidação de dívidas em projetos de empréstimo.
Implementar verificações de liquidez rigorosas em todas as funções que possam afetar o estado dos ativos dos usuários.
Realizar revisões de código regularmente e corrigir prontamente potenciais vulnerabilidades de segurança.
Considere a introdução de mecanismos de assinatura múltipla ou bloqueios temporais como medidas de segurança adicionais.
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 e o desenvolvimento saudável do ecossistema do projeto através de práticas de segurança em constante aprimoramento.
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.
22 Curtidas
Recompensa
22
6
Compartilhar
Comentário
0/400
MevTears
· 07-07 18:24
defi deitado a contar dinheiro é muito bom?
Ver originalResponder0
rekt_but_vibing
· 07-06 05:25
Outro projeto puxar o tapete.
Ver originalResponder0
P2ENotWorking
· 07-06 05:23
Explodiu de novo, não é surpresa.
Ver originalResponder0
token_therapist
· 07-06 05:14
Outra festa de fazer as pessoas de parvas
Ver originalResponder0
CryptoMom
· 07-06 05:10
mundo crypto idiotas novamente fazem as pessoas de parvas uma vez
Euler Finance sofreu um ataque de empréstimo flash de 200 milhões de dólares, alertando novamente para a segurança nas Finanças Descentralizadas.
Euler Finance sofreu ataque de empréstimo flash, com perdas de quase 200 milhões de dólares.
Em 13 de março de 2023, o projeto Euler Finance sofreu um grande ataque de empréstimo flash devido a uma vulnerabilidade na função donateToReserves do seu contrato Etoken. O atacante utilizou vários tokens para realizar múltiplas operações, resultando em uma perda colossal de cerca de 197 milhões de dólares.
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-chave: um para operações de empréstimo e outro para liquidação. O processo de ataque pode ser dividido nas seguintes etapas:
Pledge 20 milhões de DAI no contrato do Euler Protocol, obtendo cerca de 19,5 milhões de eDAI.
Usando a funcionalidade de alavancagem de 10 vezes do Protocolo Euler, emprestar 195,6 milhões de eDAI e 200 milhões de dDAI.
Usar os restantes 10 milhões DAI para reembolsar parte da dívida e destruir a quantidade correspondente de dDAI, e depois voltar a emprestar a mesma quantidade de eDAI e dDAI.
Doar 100 milhões de eDAI através da função donateToReserves, e 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, e após reembolsar o Empréstimos Flash, lucrou cerca de 8,87 milhões de DAI.
Análise da causa da vulnerabilidade
O problema central deste ataque reside na função donateToReserves, que carece de uma verificação de liquidez necessária. Comparada à função mint, a função donateToReserves não executa o passo checkLiquidity, permitindo que os usuários contornem o mecanismo normal de verificação de liquidez.
Normalmente, a função checkLiquidity chamaria o módulo RiskManager para garantir que a quantidade de Etokens do usuário seja maior do que a quantidade de Dtokens. No entanto, como a função donateToReserves pulou essa etapa, o atacante conseguiu se colocar em um estado que poderia ser liquidado antes de completar a operação de liquidação.
Sugestões de Segurança
Em relação a esse tipo de vulnerabilidade, recomendamos aos projetos DeFi:
Realizar uma auditoria de segurança abrangente antes do lançamento do contrato, garantindo a segurança do contrato.
Prestar especial atenção aos momentos-chave como reembolso de fundos, detecção de liquidez e liquidação de dívidas em projetos de empréstimo.
Implementar verificações de liquidez rigorosas em todas as funções que possam afetar o estado dos ativos dos usuários.
Realizar revisões de código regularmente e corrigir prontamente potenciais vulnerabilidades de segurança.
Considere a introdução de mecanismos de assinatura múltipla ou bloqueios temporais como medidas de segurança adicionais.
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 e o desenvolvimento saudável do ecossistema do projeto através de práticas de segurança em constante aprimoramento.