Análise do incidente de ataque na cadeia de 300 mil dólares causado por vulnerabilidades de armazenamento transitório
No dia 30 de março de 2025, um projeto de negociação alavancada na cadeia sofreu um ataque, resultando em uma perda de mais de 300 mil dólares em ativos. A equipe de segurança realizou uma análise aprofundada deste evento e agora compartilha os resultados a seguir:
Contexto
O ataque ocorreu na rede Ethereum, tendo como alvo um projeto de negociação alavancada. O atacante explorou uma vulnerabilidade relacionada ao armazenamento transitório no contrato do projeto.
Conhecimento prévio
A versão 0.8.24 do Solidity introduziu o recurso de armazenamento transitório (transient storage), que é uma nova localização de armazenamento de dados. As principais características incluem:
Baixos custos de gas: as operações TSTORE e TLOAD consomem fixamente 100 gas
Persistência da transação: os dados permanecem válidos durante todo o período da transação
Limpeza automática: redefine automaticamente para zero após o término da transação
Causa da vulnerabilidade
A causa fundamental do ataque desta vez é que o valor armazenado temporariamente usando tstore no contrato não foi limpo após o término da chamada da função. Isso permitiu que o atacante explorasse essa característica para construir um endereço específico, contornando a verificação de permissões e transferindo tokens.
Processo de Ataque
O atacante cria dois tokens maliciosos A e B e cria um pool de liquidez para eles em algum DEX.
Chame a função initialize do contrato alvo para criar um mercado de negociação alavancada com o token A como colateral e o token B como token de dívida.
Chamar a função mint para depositar o token B para a criação de tokens alavancados, durante este processo foram realizadas duas operações de armazenamento transitório.
Criar um contrato malicioso que tenha o mesmo endereço que o valor de armazenamento transitório da segunda vez.
Através da chamada da função de callback do contrato alvo pelo contrato malicioso, contornando a verificação de permissões para transferir tokens.
Por fim, através do ataque ao contrato (token A), chamar novamente a função de retorno para transferir outros tokens (como WBTC, WETH) e obter lucro.
Análise do fluxo de fundos
Os atacantes roubaram cerca de 300 mil dólares em ativos, incluindo:
17,814.8626 USDC
1.4085 WBTC
119.871 WETH
Em seguida, o atacante trocou WBTC e USDC por WETH, e finalmente transferiu 193,1428 WETH para um serviço de mistura.
Os fundos iniciais do atacante (0.3 ETH) também vieram deste serviço de mistura.
Resumo e Sugestões
O núcleo deste ataque baseou-se na utilização da característica de armazenamento transitório que mantém o valor inalterado durante todo o período da transação, permitindo assim contornar a verificação de permissões do contrato. Para prevenir ataques semelhantes, recomenda-se que a equipa do projeto:
Após o término da chamada da função, use imediatamente tstore(key, 0) para limpar os valores do armazenamento transitório.
Reforçar a auditoria de código de contrato e os testes de segurança.
Use com cautela as novas características de linguagem introduzidas, compreendendo plenamente os seus riscos potenciais.
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.
7 gostos
Recompensa
7
6
Partilhar
Comentar
0/400
PensionDestroyer
· 10h atrás
又有idiotas寄了
Ver originalResponder0
TestnetFreeloader
· 11h atrás
Ah, quanto é que se pode aproveitar sem pagar, nem sequer conseguem segurar o próprio projeto.
Ver originalResponder0
LootboxPhobia
· 11h atrás
Péssimo, péssimo, outro irmão pisou na mina.
Ver originalResponder0
BearMarketMonk
· 11h atrás
Aproveitar as promoções também levou à falha do contrato.
Ver originalResponder0
DeFiAlchemist
· 11h atrás
ah, outro cordeiro sacrificial para as artes sombrias da exploração de contratos inteligentes... *ajusta a bola de cristal* essas vulnerabilidades de armazenamento efémero são como rachaduras no selo hermético da alquimia do protocolo
Vulnerabilidade de armazenamento transitório leva a ataque de 300 mil dólares a projeto na cadeia; especialistas analisam recomendações de prevenção.
Análise do incidente de ataque na cadeia de 300 mil dólares causado por vulnerabilidades de armazenamento transitório
No dia 30 de março de 2025, um projeto de negociação alavancada na cadeia sofreu um ataque, resultando em uma perda de mais de 300 mil dólares em ativos. A equipe de segurança realizou uma análise aprofundada deste evento e agora compartilha os resultados a seguir:
Contexto
O ataque ocorreu na rede Ethereum, tendo como alvo um projeto de negociação alavancada. O atacante explorou uma vulnerabilidade relacionada ao armazenamento transitório no contrato do projeto.
Conhecimento prévio
A versão 0.8.24 do Solidity introduziu o recurso de armazenamento transitório (transient storage), que é uma nova localização de armazenamento de dados. As principais características incluem:
Causa da vulnerabilidade
A causa fundamental do ataque desta vez é que o valor armazenado temporariamente usando tstore no contrato não foi limpo após o término da chamada da função. Isso permitiu que o atacante explorasse essa característica para construir um endereço específico, contornando a verificação de permissões e transferindo tokens.
Processo de Ataque
Análise do fluxo de fundos
Os atacantes roubaram cerca de 300 mil dólares em ativos, incluindo:
Em seguida, o atacante trocou WBTC e USDC por WETH, e finalmente transferiu 193,1428 WETH para um serviço de mistura.
Os fundos iniciais do atacante (0.3 ETH) também vieram deste serviço de mistura.
Resumo e Sugestões
O núcleo deste ataque baseou-se na utilização da característica de armazenamento transitório que mantém o valor inalterado durante todo o período da transação, permitindo assim contornar a verificação de permissões do contrato. Para prevenir ataques semelhantes, recomenda-se que a equipa do projeto: