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.

A vulnerabilidade até agora foi corrigida apenas na forma correção, a atualização corretiva ainda não foi publicada (atualização 5.0.11 de ontem, correção não incluso). Dos kits de distribuição, o kernel 5.0 conseguiu ser incluído em Fedora 30, Ubuntu 19.04, Arch Linux, Gentoo e outras distribuições continuamente atualizadas. Debian, Ubuntu 18.10 e anteriores, RHEL / CentOS и SUSE / openSUSE o problema não afeta.

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.

Fonte: opennet.ru

Adicionar um comentário