Eles descobriram uma vulnerabilidade na implementação TIPC do kernel Linux

Recentemente, a notícia de que um pesquisador de segurança identificou uma vulnerabilidade crítica (já listado em CVE-2021-43267) na implementação do protocolo de rede TIPC fornecido no kernel Linux, que permite a execução remota de código com privilégios de kernel, enviando um pacote de rede especialmente criado.

O perigo do problema é atenuado pelo fato de que o ataque requer a ativação explícita do suporte TIPC no sistema (carregando e configurando o módulo do kernel tipc.ko), o que não é feito por padrão em distribuições não Linux.

CodeQL é um mecanismo de análise que permite executar consultas em seu código. De uma perspectiva de segurança, isso pode permitir que você encontre vulnerabilidades simplesmente descrevendo sua aparência. O CodeQL entrará em operação e encontrará todas as instâncias dessa vulnerabilidade.

O TIPC tem suporte desde o kernel Linux 3.19, mas o código que leva à vulnerabilidade foi incluído no kernel 5.10.. O protocolo TIPC foi originalmente desenvolvido pela Ericsson, destina-se a organizar a comunicação entre processos em um cluster e é ativado principalmente nos nós do cluster.

TIPC pode funcionar tanto em Ethernet quanto em UDP (porta de rede 6118). No caso de trabalhar através de Ethernet, o ataque pode ser realizado desde a rede local, e no caso de UDP, desde a rede global, se a porta não estiver coberta por firewall. O ataque também pode ser executado por um usuário local sem privilégios no host. Para habilitar o TIPC, você deve carregar o módulo do kernel tipc.ko e configurar o link para a interface de rede usando o netlink ou o utilitário tipc.

O protocolo é implementado em um módulo de kernel empacotado com todas as principais distribuições do Linux. Quando carregado por um usuário, ele pode ser usado como um conector e pode ser configurado em uma interface usando netlink (ou usando a ferramenta de espaço do usuário tipc, que fará essas chamadas de netlink) como um usuário não privilegiado.

O TIPC pode ser configurado para operar sobre um protocolo de suporte, como Ethernet ou UDP (no último caso, o kernel escuta na porta 6118 as mensagens de entrada de qualquer máquina). Uma vez que um usuário com poucos privilégios não pode criar quadros Ethernet brutos, definir o portador como UDP torna mais fácil escrever um exploit local.

A vulnerabilidade se manifesta na função tipc_crypto_key_rc e é causada pela falta de verificação adequada da correspondência entre o que está especificado no cabeçalho e o tamanho real dos dados ao analisar pacotes com o tipo MSG_CRYPTO usado para obter chaves de criptografia de outros nós do cluster para posteriormente descriptografar as mensagens enviadas desses nós.

O tamanho dos dados copiados para a memória é calculado como a diferença entre os valores dos campos com o tamanho da mensagem e o tamanho do cabeçalho, mas sem levar em conta o tamanho real do nome do algoritmo de criptografia transmitido na mensagem e no conteúdo da chave.

O tamanho do nome do algoritmo é considerado fixo e, além disso, um atributo separado com o tamanho é passado para a chave, e o invasor pode especificar um valor neste atributo que difere do valor real, o que levará à gravação em a fila da mensagem fora do buffer alocado.

A vulnerabilidade foi corrigida nos kernels 5.15.0, 5.10.77 e 5.14.16, embora o problema apareça e ainda não tenha sido corrigido no Debian 11, Ubuntu 21.04 / 21.10, SUSE (no ramo SLE15-SP4 ainda não lançado), RHEL (ainda não detalhado se a solução vulnerável foi atualizada) e Fedora.

Embora uma atualização de kernel já foi lançada para Arch Linux e distribuições com kernels anteriores a 5.10, como Debian 10 e Ubuntu 20.04, não são afetadas.

Finalmente se você estiver interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.