O CERT.Bahia alerta sobre vulnerabilidade crítica no servidor de DNS do Windows.
Recentemente o grupo de pesquisa da Checkpoint descobriu uma vulnerabilidade no servidor de DNS do Windows. O white paper da pesquisa está disponível em [0] e a essa vulnerabilidade foi atribuído CVE-2020-1350.
O problema acontece devido a uma não validação no tamanho do buffer alocado para um tipo de consulta DNS que passa pelo servidor Windows, causando um integer overflow que leva a um heap buffer overflow.
Pela criticidade do serviço e facilidade de exploração, essa vulnerabilidade recebeu nota máxima no CVSSv3: 10.0 CRITICA (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H).
A exploração acontece ao consultar um registro que a resposta terá um tamanho maior do que o previamente suportado pelo servidor. Isso faz com que não seja necessário nenhum tipo de autenticação nem interação do usuário.
Na pesquisa, inclusive, foi mostrado como é possível fazer a exploração utilizando o navegador.
De acordo com blogpost da Microsoft, todas as versões do Windows Server são afetadas.
Já existem provas de conceito de exploração públicas que causam negação de serviço do DNS, como em [1] e [2], o que aumenta a possibilidade de criação de exploits para execução de código remoto.
A Microsoft lançou patches de segurança que corrigem a vulnerabilidade, disponíveis em [3].
Para real funcionamento do patch será necessário reiniciar o servidor.
Caso não seja possível aplicar o patch pois será preciso reiniciar o servidor, recomendamos aplicar uma solução paliativa, mas informamos que é extremamente importante a aplicação do patch o mais breve possível.
A solução paliativa consiste em alterar o tamanho máximo de respostas DNS permitidas:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters" /v "TcpReceivePacketSize" /t REG_DWORD /d 0xFF00 /f
Após modificação do registro como mostrado acima será necessário reiniciar o serviço DNS:
net stop dns && net start dns