$215K Roubado do Fluid: O Atacante Controla Ambas as Chaves no Sistema de Recompensas Merkle

Perda de fluidos $215K após um atacante controlar ambas as chaves de distribuição de recompensas, esvaziando tokens através de raízes Merkle falsas e roteando os lucros para Tornado Cash.

Os tokens de recompensa já tinham desaparecido. Em 27 de maio, um atacante que detinha ambas as chaves de assinatura operacional do Fluid enviou uma lista de recompensas falsa aos distribuidores Merkle do protocolo na Ethereum, Base e Arbitrum.

O Fluid, protocolo DeFi baseado na Ethereum, usa um sistema de duas etapas para distribuir recompensas: uma chave propõe uma raiz Merkle e uma segunda chave aprova-a. Como relatado por BlackHartInc no X, ambos esses papéis eram detidos por um único ator. O controle de duas pessoas não significava nada uma vez que uma pessoa detinha ambas as chaves.

Uma Pessoa, Duas Chaves, Zero Resistência

A chave do proponente enviou uma raiz autointeressada ao distribuidor FLUID às 21:11:11 UTC. Doze segundos depois, o mesmo atacante a aprovou usando a chave do aprovador. Vinte e quatro segundos após a proposta inicial, uma reivindicação foi processada usando uma prova Merkle vazia.

Essa prova vazia não foi um bug. Uma lista de recompensas de entrada única produz uma raiz igual à sua única folha, portanto, nenhum caminho de prova é necessário. O contrato verificou corretamente. Nada no contrato inteligente quebrou. Segundo análise forense de BlackHart, toda a falha foi na custódia da chave operacional.

O mesmo ciclo de propor-aprovar-reivindicar então foi executado contra o distribuidor GHO às 21:13:59 UTC e um terceiro distribuidor por uma pequena quantidade de cbBTC horas depois. Em todas as três cadeias, o atacante saiu com aproximadamente 125.109 FLUID e 51.946 GHO, além de rastros de cbBTC.

O que realmente saiu do protocolo, e o que não saiu

Os mercados de empréstimo, cofres e liquidez DEX do Fluid nunca estiveram sob controle dessas chaves. Os contratos esvaziados foram apenas distribuidores de recompensas. 0xfluid no X confirmou que os contratos inteligentes do protocolo principal permaneceram intactos e os fundos dos usuários não estavam em risco devido ao incidente.

Os FLUIDs e GHO roubados foram trocados por aproximadamente 103 éteres através do roteador de troca MetaMask. Cerca de 142,6 ETH acabaram no Tornado Cash, roteados parcialmente através de carteiras de retransmissão e parcialmente por depósito direto. Os lucros de L2 de Base e Arbitrum foram bridged de volta para Ethereum antes da mistura.

Uma grande retirada de algo entre 70 e 110 milhões de dólares do Fluid nos dias seguintes não foi uma segunda exploração. Foi depositantes retirando seus próprios fundos, uma corrida bancária impulsionada pela confiança. Não relacionada ao roubo em si, embora não exatamente alheia ao momento da divulgação.

A Limpeza, e o que não foi dito

Cerca de dez horas após o primeiro roubo, em 28 de maio às 07:05 UTC, a equipe do Fluid removeu as funções comprometidas de proponente e aprovador de dez distribuidores de recompensas em uma única transação agrupada. Aproximadamente 314.000 FLUID e 7.400 USDC de saldos de recompensas restantes foram movidos para um endereço seguro.

Comunicações públicas da equipe descreveram apenas uma pausa na reivindicação de recompensas para atualizações. Sem menção de comprometimento de chaves. Sem menção de perda. O próprio exploit foi divulgado publicamente em 31 de maio, quatro dias após ter ocorrido, quando um credor já tinha retirado 77 milhões de dólares em USDC a partir de 28 de maio.

Pablo Veyrat, cofundador da Merkl, abordou o episódio no X. Falando sobre as escolhas de design do seu próprio protocolo, Veyrat observou no X que a Merkl executa três bots de disputa independentes em infraestruturas totalmente separadas, cada um verificando novas árvores Merkle antes que uma raiz se torne efetiva, com um atraso mínimo de uma hora entre a postagem de uma nova raiz e quaisquer reivindicações contra ela.

Por que um Timelock muda tudo aqui

Todo o exploit ocorreu em menos de 24 segundos desde a proposta até a reivindicação. Essa velocidade só foi possível porque não havia atraso entre a aprovação da raiz e o pagamento. Exploits de chaves de administração têm atingido DeFi repetidamente este ano, e o padrão continua voltando ao mesmo gap: chaves privilegiadas sem atrito entre acesso e ação.

A avaliação da BlackHart destacou a segurança operacional como a área de pontuação mais fraca na sua avaliação pré-hack do Fluid. O modo de falha exato, duas chaves que poderiam ser transformadas em um pagamento sem um custodiante independente ou um período de espera, já era o que a pontuação alertava. Compromissos de chaves operacionais não são novidade até 2026, mas o caso do Fluid acrescenta uma complicação específica: o design de duas chaves parecia uma salvaguarda até que fosse detido por uma pessoa.

A carteira do atacante, 0x4925120c…1d3dfb, reivindicou em várias cadeias dentro de aproximadamente o mesmo minuto. Nenhum limite de velocidade restringiu o que um ciclo único poderia liberar. Nenhum alerta em tempo real detectou a atividade anormal até horas depois.

FLUID-11,49%
GHO0,05%
ETH-7,75%
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
  • Comentar
  • Republicar
  • Partilhar
Comentar
Adicionar um comentário
Adicionar um comentário
Nenhum comentário
  • Fixado