Bem-vindo de volta ao Spotlight de Vulnerabilidades do Sherlock, onde destacamos uma vulnerabilidade impactante descoberta durante uma auditoria do Sherlock. Esta semana, temos o Spoofing de Depósito. Foi descoberto por @0xalpharush & @bernd_eth no Concurso Cross-Chain da @zetablockchain. 🧵
Aqui está o resumo da vulnerabilidade de @bernd_eth: 1. Os observadores da ZetaChain monitorizam transações em cadeias externas (por exemplo, Ethereum, Solana) e adicionam-nas a um rastreador centralizado de entradas para processá-las como depósitos e retiradas, assumindo o sucesso da transação. 2. Ao contrário da integração EVM, a implementação da Solana ignora as verificações de sucesso da transação, permitindo que um observador malicioso adicione depósitos falhados, cunhando SOL ZRC20 sem lastro e drenando fundos transferidos. 3. Apesar de os observadores serem explicitamente autorizados pela ZetaChain, é crucial garantir que nenhuma única parte possa comprometer a cadeia ou desviar ativos.
Normalmente, os observadores não processam transações falhadas, mas este caminho de código não realiza a mesma validação que o seu equivalente EVM. Embora isso exija um papel "privilegiado", cada validador é um observador, e o consenso BFT deve ser tolerante a byzantinos, ou seja, tolerar <1/3 de partes maliciosas. Assim, um observador malicioso não deve ser capaz de forjar um depósito e induzir validadores honestos a votar para cunhar ZRC20 Sol para transações falhadas através do rastreador de entrada, que carece de validações para a sua implementação em Solana.
A causa raiz desta vulnerabilidade: A função ProcessInboundEvents não exige que uma transação tenha sido bem-sucedida, ao contrário do observador de entrada EVM, que faz isso corretamente aqui. Como a instrução é decodificada como se tivesse sido bem-sucedida, um observador malicioso pode falsificar um depósito para todo o saldo ZRC20-SOL e, em seguida, retirar o SOL bloqueado no lado Solana da ponte, roubando todos os lamports na ponte. Este ataque também poderia ser usado para retirar tokens SPL ou realizar depósitos e chamadas arbitrárias. Por exemplo, remover a propriedade gravável do PDA do gateway na instrução de depósito resulta em uma transação falhada (veja o erro de restrição do âncora no POC), e ainda pode ser processada uma vez adicionada ao rastreador de entrada via MsgAddInboundTracker.
Condições prévias internas: Um observador malicioso ou negligente adiciona uma transação Solana falhada que contém instruções de Gateway ao rastreador de entrada usando MsgAddInboundTracker, resultando em todos os validadores processando e votando para cunhar ZRC20 Sol na Zetachain. O CCTX recebe votos suficientes, e ZRC20 Sol não garantido na Zetachain é cunhado.
Condições Pré-exteriores: Qualquer parte envia uma transação falhada para o gateway com uma instrução de depósito (ou depósito e chamada). O destinatário do ZRC20 Sol na Zetachain retira-o e recebe lamports na Solana.
O Caminho do Ataque: 1) Qualquer parte envia uma transação falhada para o gateway com uma instrução de depósito (ou depósito e chamada). 2) Um observador malicioso ou negligente adiciona uma transação falhada do Solana que contém instruções do Gateway ao rastreador de entrada usando MsgAddInboundTracker, resultando em todos os validadores processando e votando para cunhar ZRC20 Sol na Zetachain. 3) A tarefa ProcessInboundTrackers faz com que o CCTX falsificado receba votos suficientes, e ZRC20 Sol não garantido na Zetachain é cunhado. 4) O destinatário do ZRC20 Sol na Zetachain retira-o e recebe lamports no Solana.
Qual é o impacto? Todos os lamports e tokens SPL depositados na ponte Solana podem ser roubados, uma vez que os depósitos podem ser forjados para qualquer quantia (eles são processados apesar do programa Gateway causar a reversão das transações).
A Mitigação: No processamento do rastreador de entrada do Solana Observer, verifique se a transação foi bem-sucedida antes de votar nela.
Estamos orgulhosos de ter ajudado a garantir a @zetablockchain através desta descoberta. Quando precisa absolutamente de ser seguro, Sherlock é a escolha certa.
Mostrar original
8,41 mil
20
O conteúdo apresentado nesta página é fornecido por terceiros. Salvo indicação em contrário, a OKX não é o autor dos artigos citados e não reivindica quaisquer direitos de autor nos materiais. O conteúdo é fornecido apenas para fins informativos e não representa a opinião da OKX. Não se destina a ser um endosso de qualquer tipo e não deve ser considerado conselho de investimento ou uma solicitação para comprar ou vender ativos digitais. Na medida em que a IA generativa é utilizada para fornecer resumos ou outras informações, esse mesmo conteúdo gerado por IA pode ser impreciso ou inconsistente. Leia o artigo associado para obter mais detalhes e informações. A OKX não é responsável pelo conteúdo apresentado nos sites de terceiros. As detenções de ativos digitais, incluindo criptomoedas estáveis e NFTs, envolvem um nível de risco elevado e podem sofrer grandes flutuações. Deve considerar cuidadosamente se o trading ou a detenção de ativos digitais é adequado para si à luz da sua condição financeira.