Vulnerabilidade no systemd que poderia permitir que você aumentasse seus privilégios

No gerenciador de sistema systemd identificado vulnerabilidade (CVE-2020-1712), que potencialmente permite que você execute seu código com privilégios elevados, enviando uma solicitação especialmente projetada pelo barramento DBus. O problema foi corrigido na versão de teste sistemad 245-rc1 (patches que resolvem o problema: 1, 2, 3). A vulnerabilidade foi corrigida em distribuições Ubuntu, Fedora, RHEL (aparece no RHEL 8, mas não afeta o RHEL 7), CentOS и SUSE / openSUSE, mas no momento em que escrevo a notícia permanece sem correção em Debian и Arch Linux.

A vulnerabilidade é causada pelo acesso a uma área de memória já liberada (use-after-free), que ocorre durante a execução assíncrona de solicitações ao Polkit durante o processamento de mensagens DBus. Algumas interfaces DBus usam um cache para armazenar objetos por um curto período de tempo e liberar as entradas do cache assim que o barramento DBus estiver livre para processar outras solicitações. Se um manipulador de método DBus usar bus_verify_polkit_async(), pode ser necessário aguardar a conclusão da ação do Polkit. Depois que o Polkit estiver pronto, o manipulador é chamado novamente e acessa os dados já distribuídos na memória. Se uma solicitação ao Polkit demorar muito, os itens no cache serão limpos antes que o manipulador do método DBus seja chamado pela segunda vez.

Entre os serviços que permitem a exploração da vulnerabilidade, destaca-se o systemd-machined, que disponibiliza a API DBus org.freedesktop.machine1.Image.Clone, levando ao armazenamento temporário de dados no cache e acesso assíncrono ao Polkit. Interface
org.freedesktop.machine1.Image.Clone está disponível para todos os usuários sem privilégios do sistema, o que pode travar os serviços do systemd ou potencialmente fazer com que o código seja executado como root (o protótipo de exploração ainda não foi demonstrado). O código que permitiu a exploração da vulnerabilidade foi adicionado em systemd usinado na versão 2015 sistema 220 (RHEL 7.x usa systemd 219).

Fonte: opennet.ru

Adicionar um comentário