O projeto Euler Finance sofreu um 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, resultando em uma enorme perda de cerca de 197 milhões de dólares. O atacante explorou uma vulnerabilidade no contrato do projeto e completou o ataque por meio de várias operações. Atualmente, os fundos roubados ainda permanecem na conta do atacante.
Análise do processo de ataque
O atacante primeiro pegou emprestado 30 milhões de DAI de uma plataforma de empréstimo flash e implantou dois contratos: um contrato de empréstimo e um contrato de liquidação.
O atacante colocou 20 milhões de DAI emprestados como garantia no contrato do Euler Protocol e obteve 19,5 milhões de eDAI.
Utilizando a funcionalidade de alavancagem do Euler Protocol, o atacante emprestou 195,6 milhões de eDAI e 200 milhões de dDAI.
O atacante utilizou os 10 milhões de DAI restantes para reembolsar parte da dívida, destruiu 10 milhões de dDAI e, em seguida, emprestou novamente 195,6 milhões de eDAI e 200 milhões de dDAI.
Passos-chave: O atacante chama a função donateToReserves, doando 100 milhões de eDAI, e depois liquida através da função liquidate, obtendo 310 milhões de dDAI e 250 milhões de eDAI.
Por fim, o atacante extraiu 38,9 milhões de DAI, devolveu 30 milhões de DAI em Empréstimos Flash e obteve um lucro final de 8,87 milhões de DAI.
Causa da Vulnerabilidade
A principal razão pela qual o ataque teve sucesso é a falha na função donateToReserves do contrato da Euler Finance. Em comparação com outras funções chave, esta função carece do passo necessário de verificação de liquidez (checkLiquidity). Esta verificação deveria garantir que o número de eTokens do usuário seja maior do que o número de dTokens, para manter a saúde do contrato.
Devido à falta desta verificação crítica, os atacantes conseguem, através de operações específicas, colocar-se em um estado que pode ser liquidado e, em seguida, aproveitar-se disso para executar o ataque.
Sugestões de Segurança
Para projetos de empréstimo semelhantes, é necessário ter especial atenção a os seguintes pontos-chave:
A segurança do mecanismo de reembolso de fundos
Abrangência da detecção de liquidez
A rigorosidade do processo de liquidação da dívida
Antes do lançamento do contrato, é crucial realizar uma auditoria de segurança completa e profissional. Isso não só pode identificar vulnerabilidades potenciais, mas também garantir a segurança e a estabilidade geral do contrato.
Este evento ressalta novamente a importância da segurança dos contratos no campo das finanças descentralizadas. As equipes de projeto devem sempre priorizar a segurança para proteger os ativos dos usuários e manter o desenvolvimento saudável de todo o ecossistema.
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
10 gostos
Recompensa
10
7
Partilhar
Comentar
0/400
SeasonedInvestor
· 12h atrás
Mais um contrato foi esvaziado
Ver originalResponder0
tx_pending_forever
· 08-05 16:20
contratos inteligentes太不智能
Ver originalResponder0
airdrop_whisperer
· 08-05 16:19
contratos inteligentes difícil de garantir segurança
Euler Finance sofreu ataque de empréstimo flash com perdas de quase 200 milhões de dólares.
O projeto Euler Finance sofreu um 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, resultando em uma enorme perda de cerca de 197 milhões de dólares. O atacante explorou uma vulnerabilidade no contrato do projeto e completou o ataque por meio de várias operações. Atualmente, os fundos roubados ainda permanecem na conta do atacante.
Análise do processo de ataque
O atacante primeiro pegou emprestado 30 milhões de DAI de uma plataforma de empréstimo flash e implantou dois contratos: um contrato de empréstimo e um contrato de liquidação.
O atacante colocou 20 milhões de DAI emprestados como garantia no contrato do Euler Protocol e obteve 19,5 milhões de eDAI.
Utilizando a funcionalidade de alavancagem do Euler Protocol, o atacante emprestou 195,6 milhões de eDAI e 200 milhões de dDAI.
O atacante utilizou os 10 milhões de DAI restantes para reembolsar parte da dívida, destruiu 10 milhões de dDAI e, em seguida, emprestou novamente 195,6 milhões de eDAI e 200 milhões de dDAI.
Passos-chave: O atacante chama a função donateToReserves, doando 100 milhões de eDAI, e depois liquida através da função liquidate, obtendo 310 milhões de dDAI e 250 milhões de eDAI.
Por fim, o atacante extraiu 38,9 milhões de DAI, devolveu 30 milhões de DAI em Empréstimos Flash e obteve um lucro final de 8,87 milhões de DAI.
Causa da Vulnerabilidade
A principal razão pela qual o ataque teve sucesso é a falha na função donateToReserves do contrato da Euler Finance. Em comparação com outras funções chave, esta função carece do passo necessário de verificação de liquidez (checkLiquidity). Esta verificação deveria garantir que o número de eTokens do usuário seja maior do que o número de dTokens, para manter a saúde do contrato.
Devido à falta desta verificação crítica, os atacantes conseguem, através de operações específicas, colocar-se em um estado que pode ser liquidado e, em seguida, aproveitar-se disso para executar o ataque.
Sugestões de Segurança
Para projetos de empréstimo semelhantes, é necessário ter especial atenção a os seguintes pontos-chave:
Antes do lançamento do contrato, é crucial realizar uma auditoria de segurança completa e profissional. Isso não só pode identificar vulnerabilidades potenciais, mas também garantir a segurança e a estabilidade geral do contrato.
Este evento ressalta novamente a importância da segurança dos contratos no campo das finanças descentralizadas. As equipes de projeto devem sempre priorizar a segurança para proteger os ativos dos usuários e manter o desenvolvimento saudável de todo o ecossistema.