No kernel fornecido Linux Uma vulnerabilidade crítica (CVE-2021-43267) foi identificada na implementação do protocolo de rede TIPC (Transparent Inter-process Communication). Essa vulnerabilidade permite que atacantes remotos executem código com privilégios de kernel enviando um pacote de rede especialmente criado. A vulnerabilidade é atenuada pelo fato de que o ataque requer a ativação explícita do suporte a TIPC no sistema (carregando e configurando o módulo do kernel tipc.ko), o que não está presente em distribuições não especializadas. Linux Não é produzido por padrão.
O protocolo TIPC é suportado desde o kernel. Linux 3.19, mas o código que causa a vulnerabilidade foi incluído no kernel 5.10. A vulnerabilidade foi corrigida nos kernels 5.15.0, 5.10.77 e 5.14.16. O problema se manifesta e ainda não foi corrigido em Debian 11, Ubuntu 21/10/2021, SUSE (na ramificação não lançada SLE15-SP4), RHEL (sem detalhes ainda sobre se a correção da vulnerabilidade foi implementada em versões anteriores) e Fedora. Uma atualização do kernel já foi lançada para Arch. LinuxDistribuições com um kernel anterior à versão 5.10, como Debian 10 e Ubuntu 20.04, não afetado pelo problema.
O protocolo TIPC, originalmente desenvolvido pela Ericsson, foi projetado para permitir a comunicação entre processos em um cluster e é ativado principalmente nos nós do cluster. O TIPC pode operar tanto em Ethernet quanto em UDP (porta de rede 6118). Quando executado em Ethernet, um ataque pode ser lançado a partir da rede local, enquanto que, ao usar UDP, um ataque pode ser lançado a partir da rede global se a porta não estiver protegida por um firewall. Um ataque também pode ser realizado por um usuário local sem privilégios no host. A ativação do TIPC requer o carregamento do módulo do kernel tipc.ko e a configuração da vinculação à interface de rede usando o netlink ou o utilitário tipc.
A vulnerabilidade ocorre na função `tipc_crypto_key_rc` e é causada pela falta de validação adequada do tamanho do cabeçalho e do tamanho real dos dados ao analisar pacotes `MSG_CRYPTO`. Esses pacotes são usados para obter chaves de criptografia de outros nós no cluster para posterior descriptografia de mensagens enviadas por esses nós. O tamanho dos dados copiados para a memória é calculado como a diferença entre o campo de tamanho da mensagem e o tamanho do cabeçalho, ignorando o tamanho real do nome do algoritmo de criptografia e o conteúdo da chave transmitidos na mensagem. Assume-se que o tamanho do nome do algoritmo seja fixo e um atributo separado com o tamanho é transmitido adicionalmente para a chave. Um atacante pode especificar um valor nesse atributo que difere do valor real, o que resultará na gravação da cauda da mensagem além do buffer alocado.

Fonte: opennet.ru
