Vulnerabilidade no kernel Linux que pode causar travamento ao enviar um pacote UDP
No kernel Linux identificado vulnerabilidade (CVE-2019-11683), que permite causar remotamente uma negação de serviço enviando pacotes UDP especialmente projetados (pacote da morte). O problema é causado por um erro no manipulador udp_gro_receive_segment (net/ipv4/udp_offload.c) com a implementação da tecnologia GRO (Generic Receive Offload) e pode causar danos ao conteúdo das áreas de memória do kernel ao processar pacotes UDP com preenchimento zero (carga útil vazia).
O problema afeta apenas o kernel 5.0já que o suporte GRO para soquetes UDP foi implementado em novembro do ano passado e só conseguiu entrar na última versão estável do kernel. A tecnologia GRO permite acelerar o processamento de um grande número de pacotes recebidos, agregando vários pacotes em blocos maiores que não requerem processamento separado de cada pacote.
Para TCP, o problema não ocorre, pois este protocolo não suporta agregação de pacotes sem carga útil.
O problema foi encontrado como resultado usar Sistema automatizado de teste de difusão criado pelo Google Syzbot e analisador KASAN (KernelAddressSanitizer), que visa identificar erros ao trabalhar com memória e fatos de acesso incorreto à memória, como acessar áreas de memória liberadas e colocar código em áreas de memória não destinadas a tais manipulações.