Bem-vindo de volta ao Spotlight de Vulnerabilidades do Sherlock, onde destacamos uma vulnerabilidade impactante descoberta durante uma auditoria do Sherlock. Esta semana, examinamos uma negação de serviço encontrada no concurso @GMX_IO por @0xdeadbeef____ e @IllIllI000. Créditos a @int0x1catedCode pela análise.
Resumo da Vulnerabilidade: A vulnerabilidade permite que um atacante manipule o fluxo de execução de ordens ao fornecer comprimentos de razões de reversão falsas que não correspondem aos dados reais. Isso faz com que o tratamento de erros do protocolo leia regiões de memória incorretas, potencialmente interrompendo o processo de execução ou causando comportamentos inesperados ao processar ordens falhadas.
Passos do Ataque: 1. Fase de Configuração Implantar um contrato malicioso que implementa um comportamento de revert personalizado. O contrato malicioso deve ser invocável pelo protocolo alvo (por exemplo, como manipulador de callback). 2. Criar Dados de Revert Maliciosos Estruturar os dados de revert com um parâmetro de comprimento falsificado. 3. Executar Ordem Através do Protocolo Criar uma ordem que irá acionar a interação com o contrato malicioso. Quando o protocolo processa a ordem e chama o contrato malicioso, ele reverte com os dados criados. O tratamento de erros do protocolo tenta decodificar a razão do revert usando o comprimento falso. 4. Acionar Overflow de Leitura de Memória O protocolo lê a memória com base no parâmetro de comprimento falso. Isso faz com que ele leia além dos limites reais dos dados de revert.
Qual é o impacto? Negação de Serviço: As ordens podem falhar na execução correta, bloqueando operações legítimas do protocolo, como a liquidação de posições ruins. Interrupção da execução de ordens: O processamento em lote de ordens pode ser interrompido, afetando múltiplos usuários. Gas griefing: O processamento de dados de reversão malformados pode consumir gás excessivo.
A Causa Raiz: 1. Parâmetros de comprimento não verificados: O protocolo confia no valor de comprimento fornecido nos dados de reversão sem validação 2. Verificações de limite ausentes: Nenhuma verificação de que o comprimento reivindicado corresponde ao tamanho real dos dados
A Mitigação: 1. Sempre valide o Comprimento dos Dados de Reversão 2. Implemente Limites de Comprimento Máximo
Estamos orgulhosos de ter ajudado a garantir a @GMX_IO através desta descoberta. Quando precisa absolutamente de ser seguro, Sherlock é a escolha certa.
Mostrar original
1,95 mil
11
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.