Várias vulnerabilidades encontradas no gerenciador de teclas de atalho do Wayland

Há poucos dias foi divulgada a notícia de que foram encontradas várias vulnerabilidades em swhkd (Simple Wayland HotKey Daemon) causado por manipulação incorreta de arquivos temporários, opções de linha de comando e soquetes unix.

O programa é escrito em Rust e lida com teclas de atalho em ambientes baseados no protocolo Wayland (um análogo compatível com arquivo de configuração do processo sxhkd usado em ambientes baseados em X11). O pacote inclui um processo swhks sem privilégios que executa ações para teclas de atalho e um processo swhkd em segundo plano que é executado como root e interage com dispositivos de entrada no nível da API uinput. Para organizar a interação entre swhks e swhkd, um socket Unix é usado.

As regras do Polkit permitem que qualquer usuário local execute o processo /usr/bin/swhkd como root e passe parâmetros arbitrários para ele.

A integração do pacote RPM enviado para openSUSE Tumbleweed continha regras incomuns de Polkit no arquivo de definição que exigia uma revisão pela equipe de segurança do SUSE.

Como resultado da revisão, vários problemas de segurança foram identificados. As questões individuais são descritas no relatório detalhado abaixo.

Das vulnerabilidades que foram identificadas, são mencionados:

CVE-2022-27815

Esta vulnerabilidade permite salvar um processo PID em um arquivo com um nome previsível e em um diretório gravável para outros usuários (/tmp/swhkd.pid), onde qualquer usuário pode criar um arquivo /tmp/swhkd.pid e colocar nele o pid de um processo existente, o que impossibilitará a inicialização do swhkd.

Na ausência de proteção contra a criação de links simbólicos em /tmp, a vulnerabilidade pode ser usada para criar ou substituir arquivos em qualquer diretório do sistema (o PID é gravado no arquivo) ou determina o conteúdo de qualquer arquivo no sistema (swhkd envia todo o conteúdo do arquivo PID para stdout). Deve-se notar que na correção lançada, o arquivo PID não foi movido para o diretório /run, mas para o diretório /etc (/etc/swhkd/runtime/swhkd_{uid}.pid), onde também não pertence .

CVE-2022-27814

Esta vulnerabilidade permite que você manipule a opção de linha de comando "-c" para especificar um arquivo de configuração pode determinar a existência de qualquer arquivo no sistema.

Como no caso da primeira vulnerabilidade, corrigir o problema é intrigante: corrigir o problema se resume ao fato de que o utilitário "cat" externo ('Command::new("/bin/cat").arg(path) é agora lançado para ler o arquivo de configuração.output()').

CVE-2022-27819

é problema também está relacionado ao uso da opção "-c", que carrega e analisa todo o arquivo de configuração sem verificar o tamanho e o tipo do arquivo.

Por exemplo, para causar uma negação de serviço devido à falta de memória livre e à criação de E/S perdidas, você pode especificar um dispositivo de bloco na inicialização ("pkexec /usr/bin/swhkd -d -c /dev/sda ») ou um dispositivo de caractere que emite um fluxo infinito de dados.

O problema foi resolvido redefinindo os privilégios antes de abrir o arquivo, mas a solução não foi concluída, pois apenas o ID do usuário (UID) é redefinido, mas o ID do grupo (GID) permanece o mesmo.

CVE-2022-27818

Esta vulnerabilidade permite que você use um arquivo /tmp/swhkd.sock para criar um soquete Unix, que é criado em um diretório público gravável, causando problemas semelhantes à primeira vulnerabilidade (qualquer usuário pode criar /tmp/swhkd.sock e gerar ou interceptar eventos de pressionamento de tecla).

CVE-2022-27817

Nesta vulnerabilidade, eventos de entrada são recebidos de todos os dispositivos e em todas as sessões, ou seja, um usuário em outro Wayland ou sessão de console pode interceptar eventos quando outros usuários pressionam teclas de atalho.

CVE-2022-27816

O processo swhks, como swhkd, usa o arquivo PID /tmp/swhks.pid no diretório /tmp gravável publicamente. O problema é semelhante à primeira vulnerabilidade, mas não tão perigoso, pois o swhks é executado em um usuário não privilegiado.

Por fim, se você estiver interessado em saber mais sobre o assunto, pode consultar o 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.