Exploit no FlashLoopAdapter drena US$ 305 mil de carteiras Safe vinculadas ao Aave

ETH
WETH
exploit de controle de acessoFlashLoopAdaptercarteira Safeempréstimo relâmpagoSlowMistAave v3
há 1 horaFonte: crypto.news
Exploit no FlashLoopAdapter drena US$ 305 mil de carteiras Safe vinculadas ao Aave

Um FlashLoopAdapter personalizado usado para gerenciar posições alavancadas na Aave v3 foi explorado na Ethereum, deixando duas carteiras Safe com perdas estimadas em US$ 305.000 depois que um atacante contornou os controles de acesso do módulo.

Resumo

  • Uma falha de controle de acesso no FlashLoopAdapter permitiu que um atacante drenasse cerca de US$ 305.000 de duas carteiras Safe na Ethereum.
  • O atacante usou um flash loan da Morpho para pagar aproximadamente 1.335 WETH de dívida na Aave antes de sacar cerca de 1.306 weETH em garantia.
  • O fundador da Aave, Stani Kulechov, disse que o contrato afetado era um adaptador de terceiros construído sobre a Aave e não teve nenhum efeito na Aave v3.

A empresa de segurança blockchain SlowMist disse que o atacante explorou uma falha de autenticação no contrato FlashLoopAdapter, que permitiu que um Safe falso passasse pelas verificações destinadas a restringir o acesso a carteiras que haviam habilitado o módulo. O atacante acabou retendo cerca de 114,09 ETH após usar o módulo para manipular posições mantidas pelas carteiras afetadas.

O incidente envolveu um contrato personalizado construído sobre a Aave, e não o protocolo principal Aave v3. A Defimon Alerts, que detectou o ataque às 15:08:57 UTC de 1º de outubro, disse que a própria Aave v3 não foi afetada.

Controles de acesso do FlashLoopAdapter permitiram que um Safe falso passasse

O FlashLoopAdapter foi projetado como um módulo Safe para abrir e fechar posições alavancadas por meio da Aave v3. Os Safes que habilitaram o módulo podiam usá-lo para gerenciar estratégias de looping envolvendo ativos emprestados e garantias.

De acordo com a SlowMist, a fraqueza foi encontrada nos controles de acesso usados pelas funções open() e close() do adaptador.

Em vez de estabelecer independentemente que o chamador era um Safe legítimo, as funções verificavam se ISafe(msg.sender).isModuleEnabled(address(this)) retornava true. Um atacante poderia implantar um contrato Safe falso programado para retornar true quando o FlashLoopAdapter fizesse a verificação.

Assim que o Safe falso passou nesse teste, o atacante obteve acesso à funcionalidade que deveria ter sido limitada a carteiras autorizadas.

A Defimon Alerts disse que as verificações realizadas durante o callback não impediram a transação porque o contrato do atacante também atuou como provedor de liquidez flash. Outra função, _swap(), então permitiu uma chamada bruta a um swapRouter usando swapCalldata fornecida pelo chamador.

Ambas as entradas podiam ser controladas pelo atacante.

Em vez de fornecer um roteador de swap comum, o atacante definiu o roteador como uma das carteiras Safe vítimas. O calldata foi definido para chamar execTransactionFromModule, uma função Safe que permite que um módulo habilitado execute uma transação.

O FlashLoopAdapter já estava habilitado pela carteira Safe vítima, então a chamada resultante foi aceita.

Um problema semelhante envolvendo permissões vinculadas a módulos Safe surgiu em setembro. Um exploit de carteira Safe na Ethereum envolvendo aproximadamente 2.900 rsETH foi rastreado pela BlockSec até verificações de autorização fracas em um contrato executor conectado a um módulo Safe habilitado. Um bot de MEV antecipou a tentativa de exploit e recebeu os ativos antes que a transação de ataque original fosse revertida, conforme relatado anteriormente pela crypto.news.

Atacante reembolsou 1.335 WETH para desbloquear garantia weETH

O ataque ao FlashLoopAdapter envolveu mais do que simplesmente transferir ativos que já estavam dentro das carteiras afetadas.

A Defimon Alerts disse que o atacante tomou um flash loan de WETH no Morpho e usou a liquidez emprestada para reembolsar aproximadamente 1.335 WETH de dívida no Aave pertencente ao primeiro Safe, identificado como 0xcfedf95a3653a128dfc2e4288758a1a1850d169f.

O reembolso da dívida liberou a garantia vinculada à posição alavancada no Aave. O atacante então usou o caminho de execução do módulo comprometido para fazer o Safe sacar aproximadamente 1.306 weETH para um endereço controlado pelo atacante.

Um segundo Safe, 0xe3b23e47df7cd85876ac6cb05bdb9d7cd5b28520, perdeu outros 6,4 weETH através do mesmo módulo vulnerável.

A Defimon disse que ambos os Safes afetados compartilhavam o mesmo único proprietário.

Parte do weETH sacado foi trocado por WETH enquanto o atacante liquidava o flash loan e outras partes da transação. O atacante ficou com cerca de 114,1 ETH, avaliados em aproximadamente US$ 305.000 quando o incidente foi relatado.

A SlowMist, separadamente, estimou a perda em cerca de 114,09 ETH e disse que aproximadamente 1.300 WETH de dívida foram reembolsados durante o processo de desbloqueio da garantia.

O grande saque de garantia, portanto, não representa os lucros líquidos do atacante. Muito do capital movimentado na transação estava ligado ao reembolso da dívida e à desmontagem da posição alavancada antes que os ativos restantes pudessem ser tomados.

Contratos do Aave v3 não foram identificados como o componente vulnerável

Nenhum dos alertas de segurança identificou uma falha no próprio Aave v3.

O fundador e CEO do Aave, Stani Kulechov, disse que o contrato afetado era um adaptador externo de terceiros construído sobre o Aave e teve "zero efeito no Aave v3".

O FlashLoopAdapter é um contrato personalizado separado que usa o Aave v3 para gerenciar posições alavancadas mantidas através de carteiras Safe. A vulnerabilidade relatada dizia respeito a como o adaptador autenticava os chamadores e o que eles podiam fazer o módulo habilitado executar.

A distinção se assemelha a outros incidentes nos quais um protocolo ou serviço permaneceu operacional enquanto um módulo conectado a carteiras Safe fornecia a rota usada por um atacante.

Em maio, um exploit envolvendo o SquidRouterModule drenou Safes na Ethereum e na Base. Cerca de US$ 3 milhões a US$ 3,2 milhões foram roubados de 86 carteiras depois que atacantes miraram um módulo Safe de terceiros, enquanto a Squid disse que seus contratos de roteador principal e fundos de usuários não foram afetados.

Outro incidente relacionado ao Safe surgiu dias depois, quando usuários do Gnosis Pay foram instados a sacar fundos após um exploit envolvendo seu módulo de atraso Zodiac. O cofundador da Gnosis, Martin Köppelmann, disse na época que a falha poderia permitir que um atacante iniciasse transações a partir de Safes usando o módulo afetado.

Módulos Safe podem receber permissão para executar transações de uma carteira sem passar pelo fluxo padrão de transação do proprietário a cada vez. O FlashLoopAdapter dependia dessa capacidade para automatizar posições alavancadas no Aave, mas a mesma permissão significava que um bypass bem-sucedido da lógica de autenticação do adaptador poderia alcançar ativos controlados pelo Safe.

Atacante do FlashLoopAdapter manteve cerca de 114 ETH

A SlowMist identificou o endereço do atacante como 0x42c2633438609881c8fBAb82414eb9A0c45F9353, enquanto o contrato vulnerável FlashLoopAdapter foi listado como 0x16bb8b912da187870c23ec6756bb3fad061283d8.

A sequência do ataque combinou a autenticação Safe forjada com o controle sobre o roteador e os parâmetros de calldata do adaptador. Uma vez que o contrato malicioso passou pela verificação inicial, o atacante direcionou o adaptador de volta para o Safe vítima e invocou sua função de execução de módulo.

Um flash loan do Morpho forneceu o WETH necessário para reembolsar a dívida no Aave da carteira maior antes que sua garantia weETH pudesse ser removida. Aproximadamente 1.306 weETH foram sacados desse Safe, enquanto outros 6,4 weETH foram retirados da segunda carteira.

Depois que a liquidez emprestada foi liquidada e parte dos ativos retirados foi convertida, o Defimon Alerts calculou que o atacante reteve aproximadamente 114,1 ETH.

A SlowMist classificou o incidente como uma vulnerabilidade de contrato inteligente e estimou a perda resultante em US$ 305.000.