CVE-2024-38063: Patch Urgente para Vulnerabilidade Crítica no Windows

O pesquisador chinês Wei, junto ao laboratório Kunlun relataram vulnerabilidade crítica (pontuação 9,8) encontrada no módulo TCP/IP do Windows. Registrada na CVE-2024-38063, essa vulnerabilidade recebe uma altíssima pontuação de severidade devido ao seu impacto e a baixa complexidade de ataque.

QUAIS OS RISCOS?

Essa vulnerabilidade no Windows apresenta riscos significativos, especialmente em sistemas que processam tráfego de rede intensivo e diverso. A falha permite que um atacante cause um estouro de buffer baseado em heap, o que pode resultar em corrupção de memória, falhas do sistema (crash) ou até mesmo a execução de código malicioso. Em cenários críticos, isso pode comprometer a integridade e a disponibilidade do sistema, permitindo que um invasor obtenha controle total sobre o dispositivo afetado. As necessidades para exploração da vulnerabilidade são relativamente simples, sendo elas:

  1. Acesso à Rede: O atacante precisa ser capaz de enviar pacotes IPv6 malformados para o sistema alvo. Isso geralmente requer que o atacante esteja na mesma rede local ou consiga roteamento de pacotes IPv6 para o alvo.
  2. Envio de Pacotes Específicos: O ataque depende de pacotes IPv6 coalescidos(ou agrupados), onde o primeiro pacote contém um cabeçalho de extensão malformado que causa um erro de processamento. Esse erro aciona a função que reverte o estado do pacote, mas que deixa outros pacotes na lista coalescida sem marcação de erro.
  3. Timing Preciso: Após enviar os pacotes malformados, o atacante deve esperar o tempo correto (geralmente 1 minuto) para que o sistema processe o timeout e acione o estouro de buffer.
    A exploração requer conhecimento detalhado do funcionamento interno do sistema de rede do Windows, mas o risco é real para sistemas vulneráveis, especialmente em ambientes onde a segurança da rede é crítica.

COMO FUNCIONA?

Essa vulnerabilidade no Windows ocorre durante o processamento de pacotes IPv6 que foram coalescidos (ou seja, agrupados) em um único lote pelo sistema. Aqui está como o processo acontece:

  1.  Coalescimento de Pacotes: Em algumas situações, o Windows junta vários pacotes IP em um só grupo e os processa juntos. Cada pacote tem uma estrutura chamada NET_BUFFER, que armazena os dados e informações sobre o quão longe o pacote foi analisado (current-offset). Quando o sistema está processando pacotes coalescidos, o offset normalmente estará em 0x28, indicando que o cabeçalho IPv6 foi processado, mas as demais partes do pacote ainda não.
  2. Erro de Processamento: Durante o processamento de um tipo específico de cabeçalho de extensão chamado “destination options”, pode ocorrer um erro de análise. Quando isso acontece, a função tcpip!IppSendErrorList é chamada para lidar com o erro, e dentro dessa função, outra chamada tcpip!IppSendError é feita para cada pacote na lista coalescida.
  3. Reversão dos Pacotes: A função IppSendError pode ter um efeito colateral em que “reverte” o estado do pacote, movendo os dados de volta para o início e redefinindo o offset para zero. No entanto, apenas o primeiro pacote é marcado como tendo um erro, o que significa que os pacotes subsequentes na lista ainda serão processados, mas com dados incorretos.
  4. Exploração da Vulnerabilidade: A função Ipv6pReceiveFragment é usada para processar fragmentos de pacotes. Ela calcula o comprimento dos dados não relacionados ao cabeçalho, subtraindo 0x30 do valor do offset atual. Como o offset foi erroneamente redefinido para zero, o cálculo resulta em um valor incorreto (um número muito grande, 0xffd8 em hexadecimais).
  5. Estouro de Buffer: Esse valor incorreto é usado para alocar memória para o pacote remontado. Em uma das funções (Ipv6pReassemblyTimeout), o valor excede o limite permitido para o tamanho do buffer, causando um estouro de buffer, o que pode ser explorado para corromper a memória e potencialmente executar código malicioso.

O ataque funciona tentando manipular o processamento incorreto desses pacotes, explorando o erro de reversão do estado do pacote e forçando o sistema a calcular incorretamente o tamanho dos buffers, levando a um estouro que pode ser explorado por um atacante.

COMO EXPLORAR?

Para a exploração dessa vulnerabilidade, utilizamos de um script encontrado no seguinte GitHub: https://github.com/ynwarcs/CVE-2024-38063/tree/main. Onde também podemos encontrar a Prova de Conceito dessa vulnerabilidade (PoC), incluindo um vídeo detalhado da exploração.

Passo 1: Preparação do Ambiente
1. Escolha da Interface de Rede:

  • Identifique qual adaptador de rede será usado para enviar os pacotes. Exemplo: “eth0” no Linux ou “Hyper-V Virtual Ethernet Adapter” no Windows.
  • Se quiser usar a interface padrão, deixe o campo “iface” vazio.

2. Definição do Alvo:

  • Insira o endereço IP do alvo no campo “ip_addr”. O endereço deve ser um IPv6 do sistema de destino.

3. Configuração do Número de Tentativas:

  • Ajuste o número de pacotes a serem enviados nos campos
    “num_tries” e “num_batches”. Quanto maior o número, maior a chance de acionar a vulnerabilidade.

4. Endereço MAC (Opcional):

  • Deixe o campo “mac_addr” vazio, a menos que o script reclame sobre a impossibilidade de encontrar o endereço MAC. Se necessário, insira manualmente.

Passo 2: Execução do Script
1. Obtenha o Script:

  • Baixe o script do GitHub. O script em questão é responsável por enviar pacotes IPv6 malformados para explorar a vulnerabilidade.

2. Prepare o Alvo:

  • No sistema de destino, habilite o modo de depuração para aumentar as chances de coalescência de pacotes:
  • Reinicie a máquina/VM para aplicar as mudanças.

3. Execute o Script:

  • No sistema que enviará os pacotes, execute o script Python com o comando:

Passo 3: Monitoramento e Ajustes

1. Monitorar Efeitos:

  •  Após a execução do script, monitore o comportamento do sistema alvo. Busque por falhas ou comportamentos anômalos que possam indicar a exploração bem-sucedida.

2. Ajustes e Troubleshooting:

  •  Caso a exploração não funcione, você pode precisar ajustar o número de pacotes (num_tries, num_batches) ou a configuração de rede do alvo para garantir que os pacotes sejam coalescidos.Exemplo visual:
    Abaixo está uma imagem exemplificando o script sendo executado em uma Máquina Virtual (VM).
Script sendo executado em uma VM. Fonte: https://github.com/ynwarcs/CVE-2024-38063/tree/main

Após a execução do script, a VM deve retornar a tela de “crash’ exemplificada na imagem abaixo:

Resultado da execução do script.
Fonte: https://github.com/ynwarcs/CVE-2024-38063/tree/main

COMO SE PROTEGER?

Os analistas de segurança da SecOffice recomendam que implementem as medidas de mitigação abaixo para melhorar a prontidão e a postura de segurança do seu ambiente.

  • Implementar o patch lançado pela Microsoft para sistemas que não podem desabilitar o IPv6
    – Este patch foi lançado em 13 de agosto de 2024. https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-38063 Este patch corrigirá esta vulnerabilidade
  • Desabilite o IPv6 se a atualização não for possível imediatamente possível, desabilitar o IPv6 reduzirá a superfície de ataque. No entanto, isso pode interromper serviços de rede que dependem do IPv6, então deve ser feito com cautela. Além disso, essa é apenas uma solução de curto prazo. Para proteção de longo prazo, as atualizações de segurança mais recentes devem ser aplicadas.

Medidas Adicionais de Proteção

  • Pentests: Testes de penetração identificam vulnerabilidades antes que sejam exploradas, permitindo correções preventivas.
  • Equipe SOC: Uma equipe qualificada de Security Operations Center (SOC) monitora e responde a incidentes de segurança em tempo real, minimizando o impacto de vazamentos de dados.
  • Gerenciamento de Vulnerabilidades: A identificação contínua e a correção rápida de falhas de segurança são essenciais para evitar brechas que possam ser exploradas por atacantes.
  • CloudSec: A segurança em ambientes de nuvem (CloudSec) oferece proteção adicional e resiliência. Serviços de CloudSec, incluem ferramentas avançadas de segurança, opções de backup e recuperação, e monitoramento contínuo, que são cruciais para a continuidade dos negócios.
Foto de Team SecOffice

Team SecOffice

Especialistas em cibersegurança, o Time de Segurança SecOffice é dedicado a proteger dados e aplicações na nuvem. Neste post, compartilhamos insights e melhores práticas para garantir a segurança do seu site na nuvem.

Compartilhe nas mídias:

Newsletter

Se inscreva e fique por dentro de tudo que acontece no mundo da Cibersugerança moderna e na nuvem.​

Rolar para cima