Vulnerabilidade remota no kernel Linux que ocorre ao usar o protocolo TIPC

Foi identificada uma vulnerabilidade (CVE-2022-0435) no módulo do kernel Linux que garante o funcionamento do protocolo de rede TIPC (Transparent Inter-process Communication), potencialmente permitindo que o código seja executado no nível do kernel, enviando uma rede especialmente projetada pacote. O problema afeta apenas sistemas com o módulo do kernel tipc.ko carregado e a pilha TIPC configurada, que normalmente é usada em clusters e não é habilitada por padrão em distribuições Linux não especializadas.

Observa-se que ao construir o kernel no modo "CONFIG_FORTIFY_SRC=y" (usado no RHEL), que adiciona verificações de limites adicionais à função memcpy(), a operação é limitada a uma parada de emergência (o kernel entra em pânico). Se executado sem verificações adicionais e se houver vazamento de informações sobre as tags canary usadas para proteger a pilha, o problema pode ser explorado para execução remota de código com direitos de kernel. Os pesquisadores que identificaram o problema afirmam que a técnica de exploração é trivial e será divulgada após a eliminação generalizada da vulnerabilidade nas distribuições.

A vulnerabilidade é causada por um estouro de pilha que ocorre durante o processamento de pacotes, cujo valor do campo com o número de nós membros do domínio excede 64. Para armazenar parâmetros do nó no módulo tipc.ko, uma matriz fixa “u32 membros[64 ]” é usado, mas no processo de processamento do especificado no pacote O número do nó não verifica o valor de "member_cnt", o que permite que valores maiores que 64 sejam usados ​​para sobrescrição controlada de dados na área de memória próxima para a estrutura "dom_bef" na pilha.

O bug que leva à vulnerabilidade foi introduzido em 15 de junho de 2016 e foi incluído no kernel Linux 4.8. A vulnerabilidade foi resolvida nas versões 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266 e 4.9.301 do kernel Linux. Nos kernels da maioria das distribuições o problema permanece sem solução: RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.

O protocolo TIPC foi originalmente desenvolvido pela Ericsson, projetado para organizar a comunicação entre processos em um cluster e é ativado principalmente nos nós do cluster. O TIPC pode operar via Ethernet ou UDP (porta de rede 6118). Ao trabalhar em Ethernet, o ataque pode ser realizado a partir da rede local, e ao utilizar UDP, a partir da rede global se a porta não estiver coberta por firewall. O ataque também pode ser realizado por um usuário local sem privilégios do host. Para ativar o TIPC, você precisa baixar o módulo do kernel tipc.ko e configurar a ligação à interface de rede usando netlink ou o utilitário tipc.

Fonte: opennet.ru

Adicionar um comentário