BlockSec: Análise do princípio do ataque GMX

DeepFlowTech
GMX-4,55%

Escrito por: BlockSec

O GMX foi alvo de um ataque de hackers, resultando em perdas superiores a 40 milhões de dólares. Os atacantes exploraram uma vulnerabilidade de reentrada e abriram posições vendidas enquanto a funcionalidade de alavancagem do contrato estava ativada para realizar o ataque.

A raiz do problema está no uso incorreto da função executeDecreaseOrder. O primeiro parâmetro dessa função deveria ser uma conta externa (EOA), mas o atacante forneceu um endereço de contrato inteligente. Isso permitiu que o atacante reentrasse no sistema durante o processo de resgate, manipulando o estado interno e, no final, resgatando ativos que ultrapassam em muito o valor real de GLP que possuía.

Mecanismo normal de resgate do GLP

No GMX, GLP é o token dos provedores de liquidez, representando a participação nos ativos do tesouro (como USDC, ETH, WBTC). Quando os usuários chamam unstakeAndRedeemGlp, o sistema utiliza a seguinte fórmula para calcular a quantidade de ativos a ser devolvida:

redeem_amount = (user_GLP / total_GLP_supply) * AUM

O cálculo do AUM (Ativos sob Gestão) é o seguinte:

AUM = Valor total de todos os pools de token + Perdas não realizadas de posições vendidas globais - Lucros não realizados de posições vendidas globais - Montante reservado - Dedução pré-definida (aumDeduction)

Este mecanismo garante que os detentores de GLP recebam uma parte proporcional dos ativos reais do cofre.

Questões após a ativação da alavancagem

Quando o enableLeverage está ativado, os usuários podem abrir posições alavancadas (longas ou curtas). Antes de resgatar o GLP, o atacante abriu uma grande posição curta em WBTC.

Uma vez que a abertura de uma posição vendida aumenta a escala global das vendas a descoberto, e na ausência de variação de preço o sistema assume automaticamente que essa posição vendida está em prejuízo, essa parte do prejuízo não realizado será contabilizada como “ativos” do tesouro, resultando em um aumento artificial do AUM. Embora o tesouro não tenha realmente obtido valor adicional, o cálculo de resgate será baseado nesse AUM inflacionado, permitindo que o atacante obtenha muito mais ativos do que lhe seria devido.

Fluxo de Ataque

ataque de transação

Escrito no final

Este ataque expôs sérias falhas no mecanismo de alavancagem e no design de proteção contra reentrância do GMX. O problema central reside na confiança excessiva da lógica de resgate de ativos no AUM, que não realiza verificações de segurança suficientemente rigorosas em seus componentes (como perdas não realizadas). Ao mesmo tempo, a suposição sobre a identidade do chamador nas funções críticas (EOA vs contrato) também carece de validação obrigatória. Este evento serve de lembrete aos desenvolvedores de que, ao envolver operações sensíveis a fundos, é crucial garantir que o estado do sistema não possa ser manipulado, especialmente ao introduzir lógicas financeiras complexas (como alavancagem e derivados), onde é necessário prevenir rigorosamente os riscos sistêmicos decorrentes de reentrâncias e contaminação de estado.

Ver original
Isenção de responsabilidade: As informações contidas nesta página podem ser provenientes de terceiros e não representam os pontos de vista ou opiniões da Gate. O conteúdo apresentado nesta página é apenas para referência e não constitui qualquer aconselhamento financeiro, de investimento ou jurídico. A Gate não garante a exatidão ou o carácter exaustivo das informações e não poderá ser responsabilizada por quaisquer perdas resultantes da utilização destas informações. Os investimentos em ativos virtuais implicam riscos elevados e estão sujeitos a uma volatilidade de preços significativa. Pode perder todo o seu capital investido. Compreenda plenamente os riscos relevantes e tome decisões prudentes com base na sua própria situação financeira e tolerância ao risco. Para mais informações, consulte a Isenção de responsabilidade.
Comentar
0/400
Nenhum comentário