Os grupos de pesquisa Forescout Research Labs e JSOF Research publicaram os resultados de um estudo conjunto sobre a segurança de várias implementações do esquema de compressão usado para embalar nomes repetidos em mensagens DNS, mDNS, DHCP e RA IPv6 (embalagem de partes duplicadas de domínios em mensagens que incluem vários nomes). Durante o trabalho realizado, foram identificadas 9 vulnerabilidades, que são resumidas sob o codinome NAME:WRECK.
Problemas foram identificados no FreeBSD, assim como em subsistemas de rede IPnet, Nucleus NET e NetX, que estão presentes em sistemas operacionais em tempo real como VxWorks, Nucleus e ThreadX, utilizados em dispositivos de automação, armazenamentos, equipamentos médicos, aviação, impressoras e eletrônicos de consumo. Estima-se que as vulnerabilidades afetam pelo menos 100 milhões de dispositivos.
- A vulnerabilidade no FreeBSD (CVE-2020-7461) permitia a execução de código malicioso através do envio de um pacote DHCP malicioso por um atacante que estivesse na mesma rede local da vítima, cujo processamento pelo cliente DHCP vulnerável resultava em um estouro de buffer. O problema era mitigado pelo fato de que o processo dhclient, onde a vulnerabilidade estava presente, era executado com privilégios reduzidos em um ambiente isolado Capsicum, do qual era necessário identificar outra vulnerabilidade para escapar.
A essência do erro estava na verificação incorreta dos parâmetros no pacote retornado pelo servidor DHCP com a opção 119 do DHCP, que permite passar uma lista de "domain search" para o resolvedor. O cálculo incorreto do tamanho do buffer necessário para acomodar os dados descompactados domínios, resultava na gravação de informações controladas pelo atacante para além do buffer alocado. No FreeBSD, o problema foi corrigido em setembro do ano passado. A exploração da vulnerabilidade só é possível com acesso à rede local.
- A vulnerabilidade no stack de rede incorporado IPnet, utilizado no RTOS VxWorks, potencialmente permite a execução de código no lado do cliente DNS devido ao gerenciamento incorreto da compressão de mensagens DNS. Como se viu, essa vulnerabilidade foi identificada pela primeira vez pela Exodus em 2016, mas nunca foi corrigida. Um novo pedido à empresa Wind River também não teve resposta, e os dispositivos com IPnet permanecem vulneráveis.
- No stack TCP/IP Nucleus NET, suportado pela Siemens, foram identificadas 6 vulnerabilidades, das quais duas poderiam levar à execução remota de código, e quatro à geração de uma negação de serviço. O primeiro problema crítico está relacionado a um erro ao descompactar mensagens DNS comprimidas, enquanto o segundo diz respeito à análise inadequada de rótulos de nomes de domínio. Ambos os problemas resultam em um estouro de buffer ao processar respostas DNS especificamente formatadas.
Para explorar as vulnerabilidades, o atacante só precisa enviar uma resposta especificamente formatada a qualquer solicitação legítima enviada de um dispositivo vulnerável, por exemplo, realizando um ataque MITM e se infiltrando no tráfego entre o servidor DNS e a vítima. Se o atacante tiver acesso à rede local, pode iniciar um servidor DNS que tente atacar os dispositivos problemáticos enviando solicitações mDNS em modo de difusão.
- A vulnerabilidade na pilha de rede NetX (Azure RTOS NetX), desenvolvida para o ThreadX RTOS e revelada em 2019 após a transição para a Microsoft, limitou-se a negação de serviço. O problema é causado por um erro na análise de mensagens DNS comprimidas na implementação do resolvedor.
Entre as pilhas de rede verificadas, nas quais não foram encontradas vulnerabilidades relacionadas à compressão de dados repetidos em mensagens DNS, estão os projetos lwIP, Nut/Net, Zephyr, uC/TCP-IP, FreeRTOS+TCP, OpenThread e FNET. Destes, os dois primeiros (Nut/Net e lwIP) não suportam compressão em mensagens DNS, enquanto os demais realizam essa operação sem erros. Além disso, observa-se que anteriormente os mesmos pesquisadores já haviam identificado vulnerabilidades semelhantes nas pilhas Treck, uIP e PicoTCP.
Fonte: opennet.ru
