Resíduos de armazenamento transitório causam perdas de ativos na cadeia de 300 mil dólares. Os desenvolvedores devem estar atentos aos riscos das novas características.
Resíduos fatais: Análise de um evento na cadeia de 300.000 dólares causado por armazenamento transitório
No dia 30 de março de 2025, um sistema de monitoramento de segurança na cadeia detectou que um projeto de negociação alavancada na rede Ethereum foi atacado, resultando em uma perda de ativos superior a 300 mil dólares. A equipe de segurança realizou uma análise aprofundada deste incidente e agora compartilha os resultados a seguir:
Contexto
A versão 0.8.24 do Solidity introduziu uma característica de armazenamento transiente baseada no EIP-1153. Este é um novo local de armazenamento de dados que oferece aos desenvolvedores uma maneira de armazenamento temporário com baixo custo e que é eficaz durante a transação. As principais características do armazenamento transiente incluem:
Baixo custo de gas: a operação consome fixamente 100 gas, muito abaixo das operações de armazenamento convencionais.
Persistência dentro da transação: os dados permanecem válidos durante todo o período da transação.
Limpeza automática: após a conclusão da transação, o armazenamento transitório é automaticamente redefinido para zero.
Análise de Eventos
A causa fundamental deste evento é que os valores armazenados transitoriamente usando tstore na função não foram limpos após o término da chamada da função, e o atacante explorou essa característica para construir um endereço malicioso específico, contornando a verificação de permissões para transferir tokens.
Os passos do ataque são os seguintes:
O atacante cria dois tokens maliciosos A e B, e cria um pool de liquidez para esses dois tokens em um DEX.
Chame a função initialize do contrato alvo, utilizando o token A como colateral e o token B como token de dívida para criar um mercado de negociação alavancada.
Chamar a função mint para depositar o token de dívida B e criar o token alavancado. Durante este processo, o endereço da pool DEX e a quantidade de cunhagem são armazenados de forma temporária.
Criar um contrato malicioso com um endereço que tenha o mesmo número de cunhagem que o armazenamento transitório.
Chamar a função de callback do contrato alvo através de contratos maliciosos, utilizando os valores remanescentes no armazenamento transitório para contornar a autenticação.
Por fim, o atacante chama diretamente a função de callback do contrato alvo através de um ataque ao contrato, transferindo outros tokens (como WBTC, WETH) para obter lucro.
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 trocados por WETH, totalizando 193,1428 WETH transferidos para uma ferramenta de anonimização. A fonte de financiamento inicial do atacante veio dos 0,3 ETH transferidos para essa ferramenta.
Sugestões de Segurança
A parte do projeto deve, de acordo com a lógica de negócios, limpar imediatamente os valores do armazenamento transitório ao final da chamada da função usando tstore(key, 0).
Reforçar a auditoria do código do contrato e os testes de segurança, com especial atenção às novas características da linguagem introduzidas e aos seus riscos potenciais.
Implementar um mecanismo de múltiplas verificações para evitar perdas massivas de ativos causadas por uma única vulnerabilidade.
Realizar avaliações de segurança e varreduras de vulnerabilidades regularmente, corrigindo prontamente problemas potenciais.
Considerar a introdução de um sistema de monitoramento de segurança para monitorizar em tempo real comportamentos de transação anormais.
Este evento lembra-nos novamente da necessidade de ter extrema cautela ao adotar novas tecnologias, compreendendo plenamente suas características e riscos potenciais. Ao mesmo tempo, práticas de segurança contínuas e auditorias regulares são essenciais para garantir a segurança dos projetos na cadeia.
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.
10 Curtidas
Recompensa
10
5
Compartilhar
Comentário
0/400
MemeTokenGenius
· 07-22 16:28
30w dólares assim se foram? Quantas pessoas morreram?
Ver originalResponder0
WhaleStalker
· 07-21 21:55
Outro contrato inteligente caiu na armadilha.
Ver originalResponder0
GateUser-1a2ed0b9
· 07-19 16:59
Outra pessoa teve um acidente. Quem te mandou ser ganancioso?
Resíduos de armazenamento transitório causam perdas de ativos na cadeia de 300 mil dólares. Os desenvolvedores devem estar atentos aos riscos das novas características.
Resíduos fatais: Análise de um evento na cadeia de 300.000 dólares causado por armazenamento transitório
No dia 30 de março de 2025, um sistema de monitoramento de segurança na cadeia detectou que um projeto de negociação alavancada na rede Ethereum foi atacado, resultando em uma perda de ativos superior a 300 mil dólares. A equipe de segurança realizou uma análise aprofundada deste incidente e agora compartilha os resultados a seguir:
Contexto
A versão 0.8.24 do Solidity introduziu uma característica de armazenamento transiente baseada no EIP-1153. Este é um novo local de armazenamento de dados que oferece aos desenvolvedores uma maneira de armazenamento temporário com baixo custo e que é eficaz durante a transação. As principais características do armazenamento transiente incluem:
Análise de Eventos
A causa fundamental deste evento é que os valores armazenados transitoriamente usando tstore na função não foram limpos após o término da chamada da função, e o atacante explorou essa característica para construir um endereço malicioso específico, contornando a verificação de permissões para transferir tokens.
Os passos do ataque são os seguintes:
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:
Esses ativos foram então trocados por WETH, totalizando 193,1428 WETH transferidos para uma ferramenta de anonimização. A fonte de financiamento inicial do atacante veio dos 0,3 ETH transferidos para essa ferramenta.
Sugestões de Segurança
Este evento lembra-nos novamente da necessidade de ter extrema cautela ao adotar novas tecnologias, compreendendo plenamente suas características e riscos potenciais. Ao mesmo tempo, práticas de segurança contínuas e auditorias regulares são essenciais para garantir a segurança dos projetos na cadeia.