Jarvis Network sofreu um ataque de reentrada de Empréstimos Flash, perdendo 66 mil MATIC

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

No dia 15 de janeiro de 2023, o projeto Jarvis_Network foi alvo de um ataque hacker, resultando na perda de 663101 MATIC. Através da análise dos dados de transação, foi descoberto que o ataque envolveu Empréstimos Flash e uma vulnerabilidade de reentrada.

Análise de Ataques de Reentrada Empréstimos Flash da Jarvis Network

Os atacantes exploraram uma vulnerabilidade na função remove_liquidity. Ao remover liquidez, essa função retornará os tokens adicionados pelo usuário. Como o Polygon e o EVM são cadeias homomórficas, a transferência de MATIC para o contrato acionará a lógica de reentrada do contrato.

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

Preste atenção ao processo de chamada da função getUnderlyingPrice. Esta função envolve a interação entre vários contratos, alguns dos quais não são de código aberto. Através da análise, descobriu-se que o problema reside no valor de retorno da função get_virtual_price. Este valor de retorno apresenta diferenças significativas antes e depois da reentrada.

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

Especificamente, a atualização da variável self.D ocorre após a transferência do token. Quando o atacante remove a liquidez, MATIC é transferido para o contrato do atacante. Ao chamar a função de fallback de retorno, o atacante primeiro consulta o preço de um determinado token. Como a atualização de self.D está atrasada em relação à transferência, isso resulta em um erro na obtenção do preço anterior.

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

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

O processo de remoção de liquidez inclui: 1) destruir os tokens LP do usuário; 2) enviar os fundos em staking para o usuário; 3) atualizar o valor de self.D. self.D é utilizado para o cálculo de preços, sendo atualizado tanto ao adicionar quanto ao remover liquidez. Um atacante explorou a vulnerabilidade do grande volume de liquidez e do momento da atualização de self.D, realizando uma reentrada no passo 2 e emprestando a um preço 10 vezes superior ao preço original.

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

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

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

Embora a função remove_liquidity utilize o decorador @nonreentrant)'lock'( para prevenir reentradas, o atacante contornou esse mecanismo de proteção através de empréstimos cross-contract.

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

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

Este ataque expôs as deficiências do projeto na lógica de modificação de variáveis e na segurança das chamadas entre contratos. Para prevenir ataques semelhantes, recomenda-se que a equipe do projeto tome as seguintes medidas:

  1. Realizar auditorias de segurança rigorosas.
  2. Mova a modificação da variável para antes da chamada externa.
  3. Utilizar múltiplas fontes de dados para obter preços.
  4. Seguir as normas de codificação "Checks-Effects-Interactions".

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

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

Através dessas medidas, é possível aumentar significativamente a segurança e a estabilidade do projeto, prevenindo a ocorrência de eventos de ataque semelhantes.

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
  • 6
  • Partilhar
Comentar
0/400
NFTHoardervip
· 9h atrás
O teste deste projeto foi demasiado fraco, uma só perna quebrou a defesa.
Ver originalResponder0
RektDetectivevip
· 07-19 06:12
Mais alguém teve problemas, não fizeram verificação de transferência de matic, novato escrevendo código?
Ver originalResponder0
DuskSurfervip
· 07-18 23:29
Ainda está deitado a copiar contratos, nem conseguiu entender o reentrância~
Ver originalResponder0
StableGeniusvip
· 07-18 23:29
lmao mais um dia, mais um hack... como previsto, para ser sincero
Ver originalResponder0
HypotheticalLiquidatorvip
· 07-18 23:18
O velho problema voltou a acontecer. Não se pode pelo menos bloquear um bloqueio de reentrada?
Ver originalResponder0
failed_dev_successful_apevip
· 07-18 23:11
equipa do projeto dormindo, enquanto os outros estão aqui a arrombar a porta~
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)