O núcleo do ataque ao Kelp foi: o atacante falsificou uma mensagem cross-chain, fazendo com que a ponte LayerZero OFT liberasse diretamente na mainnet 116.500 rsETH reais (sem a destruição correspondente na cadeia de origem), e depois depositou esses rsETH "vazios" em protocolos como o Aave como garantia, emprestando aproximadamente US$ 236 milhões em WETH/ETH reais. A vulnerabilidade central não está no Aave, mas na configuração da ponte cross-chain LayerZero do Kelp DAO. O Kelp utiliza o padrão OFT (Omnichain Fungible Token) da LayerZero V2 para sua cross-chain de rsETH: Na mainnet Ethereum, o contrato OFTAdapter bloqueia rsETH como reserva final para os rsETH wrapped em múltiplas L2s (como um cofre bancário). Nas L2s, o contrato OFT padrão segue o mecanismo 1:1 de "debit (destruição/conta reduzida) → mensagem → credit (cunhagem/liberação)" durante a cross-chain. Em uma cross-chain normal, o fluxo seria: Usuário da L2 queima rsETH → LayerZero envia mensagem → OFTAdapter na mainnet recebe e libera rsETH. O atacante fez apenas uma coisa: Chamou diretamente na mainnet Ethereum a função lzReceive do contrato LayerZero EndpointV2 (hash da transação já público: 0x1ae232da…). Ao mesmo tempo, inseriu um pacote de mensagem cross-chain falsificado (origin packet), alegando que a mensagem vinha de uma cadeia de origem legítima. Após a EndpointV2 validar a mensagem, ela a encaminhou ao OFTAdapter do Kelp. O OFTAdapter, ao receber a mensagem, liberou diretamente 116.500 rsETH da reserva da mainnet para o endereço do atacante. Assim, não houve registro de burn/debit na cadeia de origem, mas a liberação/credit foi realizada na mainnet. A conservação da oferta omnichain foi quebrada, o cofre da mainnet foi esvaziado e todos os rsETH nas L2s tornaram-se "papel sem valor". Um único transação completou todo o ataque. As duas tentativas adicionais subsequentes (cada uma de 40 mil rsETH) não tiveram sucesso porque o Kelp suspendeu imediatamente as operações. Então, a pergunta é: Por que a ponte LayerZero "aceitou" essa mensagem falsa? Não é um bug no protocolo LayerZero em si, mas sim uma configuração de segurança extremamente fraca na camada de aplicação (OApp) do Kelp. A LayerZero V2 permite que desenvolvedores personalizem o nível de validação, utilizando uma DVN (Distributed Validator Network) para confirmar mensagens. O Kelp configurou apenas 1-of-1 DVN (requerendo apenas a assinatura de um único validador), o nível de segurança mais fraco possível. Já em janeiro de 2025, o fórum de governança do Aave alertou: o Kelp deveria expandir sua DVN para múltiplas assinaturas (pelo menos 2-of-2 ou mais). Passados 15 meses, nada foi alterado — continuaram escolhendo a configuração mais fraca, priorizando velocidade. E esse ponto único tornou-se o ponto central do ataque: um único DVN foi comprometido, sua assinatura foi falsificada ou um pacote foi diretamente construído para passar na validação. E assim que a EndpointV2 recebe uma mensagem "validada", ela chama diretamente a função lzReceive do contrato alvo. O OFTAdapter confia totalmente no pacote recebido da Endpoint, sem qualquer verificação adicional. Se o Kelp tivesse priorizado equilíbrio entre segurança e velocidade — em vez de apenas velocidade — esse ataque provavelmente não teria sido bem-sucedido. Ou seja, o Kelp colocou toda a "legitimidade da mensagem cross-chain" sobre um único DVN. Finalmente, os rsETH puderam ser emprestados rapidamente por ETH real porque os rsETH são ativos autorizados como garantia no Aave e outros protocolos. Nos 46 minutos antes da suspensão do Kelp, o atacante depositou os rsETH falsos e retirou WETH real. Quando o Kelp congelou a ponte e os tokens, o inadimplemento já estava formado no Aave (que congelou o mercado de rsETH e ativou o módulo de segurança Umbrella para lidar com isso). Em resumo, O núcleo da falsificação foi: "configuração de único DVN + chamada direta à lzReceive com pacote falso". O risco de validação única, combinado com a composabilidade DeFi, resultou neste ataque em escala massiva. Validação única é frágil. Velocidade é importante, mas segurança é mais importante.

Compartilhar






Fonte:Mostrar original
Aviso legal: as informações nesta página podem ter sido obtidas de terceiros e não refletem necessariamente os pontos de vista ou opiniões da KuCoin. Este conteúdo é fornecido apenas para fins informativos gerais, sem qualquer representação ou garantia de qualquer tipo, nem deve ser interpretado como aconselhamento financeiro ou de investimento. A KuCoin não é responsável por quaisquer erros ou omissões, ou por quaisquer resultados do uso destas informações.
Os investimentos em ativos digitais podem ser arriscados. Avalie cuidadosamente os riscos de um produto e a sua tolerância ao risco com base nas suas próprias circunstâncias financeiras. Para mais informações, consulte nossos termos de uso e divulgação de risco.
