Jarvis Network sofreu um ataque de reentrada através de Empréstimos Flash, 663,101 MATIC foram roubados.

robot
Geração de resumo em curso

Análise do ataque de reentrada de empréstimos flash no projeto Jarvis Network

Em 15 de janeiro de 2023, o projeto Jarvis_Network foi atacado, resultando no roubo de 663.101 MATIC. Este incidente levantou preocupações sobre a segurança do projeto.

Análise do incidente de ataque de reentrada no Empréstimos Flash da Jarvis Network

Através da análise da pilha de chamadas de transações, descobriu-se que o atacante explorou uma vulnerabilidade de reentrada. Durante o processo de reentrada, a chamada da mesma função do mesmo contrato, embora com os mesmos parâmetros de entrada, apresenta diferenças significativas nos valores de retorno. Essa diferença ocorre principalmente na função remove_liquidity.

Análise do incidente de ataque de reentrada do Empréstimos Flash da Jarvis Network

O ataque de reentrada visa principalmente a função remove_liquidity de um determinado contrato inteligente. Essa função retorna os tokens adicionados pelo usuário ao remover liquidez. Devido à homogeneidade entre Polygon e as cadeias EVM, a lógica de reentrada foi acionada ao transferir MATIC para o contrato.

Jarvis Network Empréstimos Flash重入攻击事件分析

Uma análise mais aprofundada revelou que o problema está na implementação da função getUnderlyingPrice. Esta função envolve vários contratos que não foram tornados públicos, o que aumenta a dificuldade de análise. No entanto, ao verificar os slots de armazenamento e a pilha de chamadas, podemos inferir os valores das variáveis chave e o caminho das chamadas de função.

Análise do incidente de ataque de reentrada do Empréstimos Flash Jarvis Network

Análise do Evento de Ataque de Reentrada Empréstimos Flash Jarvis Network

Análise do incidente de ataque de reentrada do Empréstimos Flash da Jarvis Network

O cerne do ataque reside na diferença significativa no valor retornado pela função get_virtual_price antes e depois da reentrada. Essa mudança está relacionada ao momento da atualização da variável self.D. Normalmente, self.D deveria ser atualizado após a conclusão da transferência, mas nesta ocorrência de ataque, devido à reentrada, o cálculo do preço apresentou um erro.

Análise do evento de ataque de reentrada do Empréstimos Flash da Jarvis Network

![Análise do incidente de ataque de reentrada do Empréstimos Flash Jarvis Network](https://img-cdn.gateio.im/webp-social/moments-fcd66f4cc03bb8e822c9414526681442.webp01

O fluxo de execução da função remove_liquidity inclui: 1) destruir os tokens LP do usuário; 2) enviar os fundos de staking para o usuário; 3) atualizar o valor de self.D. O atacante realiza uma reentrada no segundo passo, aproveitando o valor de self.D que não foi atualizado a tempo para emprestar, obtendo assim benefícios indevidos.

![Análise do incidente de ataque de reentrada do Empréstimos Flash da Jarvis Network])https://img-cdn.gateio.im/webp-social/moments-9b2de9b00c52d3ff96d5a361df65769a.webp(

![Análise do incidente de ataque de reentrada do Empréstimos Flash Jarvis Network])https://img-cdn.gateio.im/webp-social/moments-88f9283ee0923cff2a22405715721cd2.webp(

Vale a pena notar que, embora a função remove_liquidity use o decorador @nonreentrant)'lock'( para prevenir reentradas, o bloqueio de reentrada não teve o efeito desejado, uma vez que o atacante, após reentrar, acessou outros contratos para realizar empréstimos.

![Análise do incidente de ataque de reentrada do Empréstimos Flash da Jarvis Network])https://img-cdn.gateio.im/webp-social/moments-d41ac025ee561569cce3b941d7e07967.webp(

Este ataque expôs a importância do momento da atualização de variáveis em contratos inteligentes. Para aumentar a segurança, recomenda-se que as equipes de projeto adotem as seguintes medidas:

  1. Realizar auditorias de segurança rigorosas
  2. Certifique-se de que a modificação da variável seja concluída antes da chamada externa.
  3. Adotar uma abordagem de múltiplas fontes de dados para obter informações de preços
  4. Escrever código seguindo o padrão "Verificações-Efeitos-Interações" (Checks-Effects-Interactions)

A implementação dessas melhores práticas pode melhorar significativamente a segurança e a estabilidade dos contratos inteligentes, fornecendo uma infraestrutura mais confiável para o ecossistema Web3.

![Análise do evento de ataque de reentrada de Empréstimos Flash da Jarvis Network])https://img-cdn.gateio.im/webp-social/moments-2c4474781d661306bc8c432dad3942c0.webp(

Ver original
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.
  • Recompensa
  • 4
  • Partilhar
Comentar
0/400
CantAffordPancakevip
· 9h atrás
又被 fazer as pessoas de parvas uma vez idiotas了呢~
Ver originalResponder0
RugpullTherapistvip
· 9h atrás
Outra empresa a puxar o tapete?? Que pena~
Ver originalResponder0
not_your_keysvip
· 10h atrás
Outro projeto foi aproveitado~
Ver originalResponder0
GateUser-a180694bvip
· 10h atrás
Esta auditoria de código é tão fraca?!
Ver originalResponder0
  • Pino
Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)