Bem-vindo de volta ao Destaque de Vulnerabilidade do Sherlock, onde destacamos uma vulnerabilidade impactante descoberta durante uma auditoria do Sherlock.
Esta semana, temos Deposit Spoofing.
Foi descoberto por @0xalpharush & @bernd_eth no @zetablockchain Cross-Chain Contest. 🧵

Aqui está o resumo de @bernd_eth sobre a vulnerabilidade:
1. Os observadores da ZetaChain monitoram transações em cadeias externas (por exemplo, Ethereum, Solana) e as adicionam a um rastreador de entrada centralizado para processá-las como depósitos e saques, 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 mal-intencionado adicione depósitos com falha, cunhando ZRC20 SOL sem lastro e drenando fundos em ponte.
3. Apesar de os observadores serem explicitamente permitidos pela ZetaChain, é fundamental garantir que nenhuma parte possa comprometer a cadeia ou desviar ativos.
Normalmente, os observadores não processam transações com falha, mas esse caminho de código não executa a mesma validação que sua contraparte EVM. Embora isso exija um papel "privilegiado", todo validador é um observador, e o consenso BFT deve ser tolerante bizantino, ou seja, tolerar <1/3 partes mal-intencionadas. Assim, um observador mal-intencionado não deve ser capaz de forjar um depósito e induzir validadores honestos a votar para cunhar ZRC20 Sol para transações com falha por meio do rastreador de entrada, que carece de validações para sua implementação Solana.
A causa raiz dessa vulnerabilidade:
A função ProcessInboundEvents não requer 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 mal-intencionado 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. Esse ataque também pode ser usado para sacar 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 com falha (consulte o erro de restrição de âncora no POC) e ela ainda pode ser processada depois de adicionada ao rastreador de entrada por meio de MsgAddInboundTracker.
Pré-condições internas:
Um observador mal-intencionado ou negligente adiciona um Solana tx com falha 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 no Zetachain.
O CCTX recebe votos suficientes e o ZRC20 Sol não apoiado no Zetachain é cunhado.
Pré-condições externas:
Qualquer parte envia uma transação com falha para o gateway com uma instrução de depósito (ou depósito e chamada).
O destinatário do ZRC20 Sol na Zetachain o retira e recebe lamports na Solana.
O caminho do ataque:
1) Qualquer parte envia uma transação com falha para o gateway com uma instrução de depósito (ou depósito e chamada).
2) Um observador mal-intencionado ou negligente adiciona um Solana tx com falha 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 no Zetachain.
3) A tarefa ProcessInboundTrackers faz com que o CCTX falsificado receba votos suficientes e o ZRC20 Sol sem suporte no Zetachain é cunhado.
4) O destinatário do ZRC20 Sol na Zetachain o retira e recebe lamports na 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 falsificados por qualquer valor (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 @zetablockchain por meio dessa descoberta.
Quando absolutamente precisa ser seguro, Sherlock é a escolha certa.
8,42 mil
20
O conteúdo desta página é fornecido por terceiros. A menos que especificado de outra forma, a OKX não é a autora dos artigos mencionados e não reivindica direitos autorais sobre os materiais apresentados. O conteúdo tem um propósito meramente informativo e não representa as opiniões da OKX. Ele não deve ser interpretado como um endosso ou aconselhamento de investimento de qualquer tipo, nem como uma recomendação para compra ou venda de ativos digitais. Quando a IA generativa é utilizada para criar resumos ou outras informações, o conteúdo gerado pode apresentar imprecisões ou incoerências. Leia o artigo vinculado para mais detalhes e informações. A OKX não se responsabiliza pelo conteúdo hospedado em sites de terceiros. Possuir ativos digitais, como stablecoins e NFTs, envolve um risco elevado e pode apresentar flutuações significativas. Você deve ponderar com cuidado se negociar ou manter ativos digitais é adequado para sua condição financeira.