Vulnerabilidade de armazenamento transitório leva a ataque de 30 mil dólares por hacker a projetos Ethereum

robot
Geração do resumo em andamento

Um assalto na cadeia causado por armazenamento transitório: os 300.000 dólares de perda por trás disso

No dia 30 de março de 2025, um projeto de negociação alavancada na cadeia Ethereum chamado SIR.trading foi atacado, resultando em perdas de ativos superiores a 300.000 dólares. A equipe de segurança realizou uma análise aprofundada deste incidente, revelando os detalhes e as causas do ataque.

Resíduo Letal: Um Roubo de 300 Mil Dólares na Cadeia Provocado por Armazenamento Transitório

Contexto do Evento

Os atacantes exploraram as características de armazenamento transitório introduzidas na versão 0.8.24 do Solidity. Esta nova localização de armazenamento de dados foi projetada para fornecer uma forma de armazenamento temporário de baixo custo e eficaz durante a transação. As principais características do armazenamento transitório incluem:

  1. Baixos custos de gas: o custo de operação é fixo em 100 gas.
  2. Persistência da transação: os dados permanecem válidos durante todo o período da transação.
  3. Limpeza automática: após o término da transação, o armazenamento é redefinido para zero.

Resíduo fatal: um roubo de 300.000 dólares na cadeia causado por armazenamento transitório

Fonte do ataque

A raiz da vulnerabilidade do ataque reside no fato de que os valores armazenados temporariamente com tstore na função não são limpos após o término da chamada da função. Isso permite que um atacante construa endereços maliciosos específicos, contorne as verificações de permissão e retire tokens.

Resíduo Letal: Um Roubo de 300.000 Dólares na Cadeia Causado por Armazenamento Transiente

Processo de Ataque

  1. O atacante cria dois tokens maliciosos A e B, e cria pools para esses dois tokens em um DEX, injetando liquidez.

  2. O atacante chama a função initialize do contrato Vault, usando o token A como colateral e o token B como token de dívida para criar um mercado de negociação alavancada.

  3. O atacante chama a função mint do contrato Vault, depositando o token de dívida B para cunhar o token alavancado. Durante este processo, o endereço do pool DEX e a quantidade cunhada são armazenados de forma transitória.

  4. O atacante cria um contrato malicioso, cujo endereço é o mesmo que a quantidade de minting armazenada anteriormente de forma transitória.

  5. O atacante chamou a função de retorno do contrato Vault através de um contrato malicioso, conseguindo contornar a verificação de permissões devido ao fato de que os valores no armazenamento transitório não foram limpos.

  6. Por fim, o atacante chama diretamente a função de callback do contrato Vault através do contrato de ataque, transferindo outros tokens (como WBTC, WETH) para obter lucro.

Resíduo letal: um assalto de 300 mil dólares na cadeia causado por armazenamento transitório

Resíduo letal: um roubo de 300 mil dólares na cadeia provocado por armazenamento transitório

Resíduos fatais: um assalto na cadeia de 300 mil dólares provocado por armazenamento transitório

Resíduo fatal: um assalto de 300 mil dólares na cadeia causado por armazenamento transitório

Resíduos fatais: um roubo de 300 mil dólares na cadeia provocado por armazenamento transitório

Resíduo Fatal: Um assalto na cadeia de 300 mil dólares provocado por armazenamento transitório

Resíduo Fatal: Um Roubo de 300.000 Dólares na Cadeia Provocado por Armazenamento Transitório

Resíduos fatais: um assalto de 300 mil dólares na cadeia provocado por armazenamento transitório

Resíduo Mortal: Um Roubo de 300.000 Dólares na Cadeia Causado por Armazenamento Transitório

Resíduo letal: um roubo de 300 mil dólares na cadeia provocado pelo armazenamento transitório

Fatal Residue: A $300,000 na cadeia Heist Triggered by Transient Storage

Resíduo Letal: Um Roubo de 300.000 Dólares na Cadeia Causado por Armazenamento Transitório

Resíduo Fatal: Um Roubo de 300.000 Dólares na Cadeia Provocado por Armazenamento Transiente

Análise do fluxo de fundos

De acordo com os dados da ferramenta de análise na cadeia, os atacantes roubaram cerca de 300 mil dólares em ativos, incluindo:

  • 17,814.8626 USDC
  • 1.4085 WBTC
  • 119.871 WETH

Esses ativos foram então convertidos em WETH e, finalmente, transferidos para uma ferramenta de anonimização. A fonte inicial de financiamento do atacante foi de 0,3 ETH transferidos dessa ferramenta.

Resíduo Fatal: Um Roubo de 300 Mil Dólares na Cadeia Causado por Armazenamento Transitório

Sugestões de segurança

Para evitar ataques semelhantes, a equipe do projeto deve:

  1. Após a chamada da função, utilize imediatamente tstore(key para limpar os valores no armazenamento transitório.
  2. Reforçar a auditoria de código de contratos e os testes de segurança.
  3. Use com cautela os novos recursos de linguagem introduzidos, compreendendo bem os seus riscos potenciais.

Este incidente enfatiza novamente a importância de manter um equilíbrio entre a segurança e a aplicação de novas tecnologias no desenvolvimento de projetos de blockchain. À medida que a tecnologia continua a evoluir, os desenvolvedores e especialistas em segurança precisam manter-se alertas, identificando e respondendo prontamente a novos desafios de segurança.

ETH4.69%
Ver original
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.
  • Recompensa
  • 7
  • Compartilhar
Comentário
0/400
MemeTokenGeniusvip
· 8h atrás
Tão adorável que nem foi testado antes de ser lançado?
Ver originalResponder0
quiet_lurkervip
· 8h atrás
Mais um projeto foi esfregado no chão.
Ver originalResponder0
PumpBeforeRugvip
· 8h atrás
Ouvi dizer que desta vez ele virou e fugiu~contratos inteligentes pequeno bug
Ver originalResponder0
MEVHuntervip
· 8h atrás
Estes 30k são demasiado baratos, até o Empréstimos Flash dá preguiça de correr.
Ver originalResponder0
ContractSurrendervip
· 8h atrás
O velho projeto Tudo em novas características, está a esfriar...
Ver originalResponder0
MissedAirdropAgainvip
· 8h atrás
Ah, são apenas 30 mil de pequenas provocações.
Ver originalResponder0
NeverPresentvip
· 8h atrás
Um erro tão básico conseguiu ser explorado?
Ver originalResponder0
  • Marcar
Faça trade de criptomoedas em qualquer lugar e a qualquer hora
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)