No componente systemd-coredump, que trata dos arquivos core gerados após a falha de processos, foi identificada uma vulnerabilidade (CVE-2022-4415) que permite a um usuário local não privilegiado determinar o conteúdo da memória de processos privilegiados executados com a flag suid root. A presença do problema na configuração padrão foi confirmada nas distribuições openSUSE, Arch, Debian, Fedora e SLES.
A vulnerabilidade é causada pela falta de um tratamento adequado do parâmetro sysctl fs.suid_dumpable no systemd-coredump, que, com o valor padrão definido como 2, permite a geração de core dumps para processos com a flag suid. Assume-se que os arquivos core gravados pelo kernel para processos suid devem ter permissões que restrinjam a leitura apenas ao usuário root. A ferramenta systemd-coredump, chamada pelo kernel para salvar os arquivos core, salva o arquivo core sob o identificador root, mas também fornece acesso aos arquivos core com base em ACL, permitindo a leitura com base no identificador do proprietário que originalmente iniciou o processo.
Essa característica permite que arquivos core sejam carregados sem considerar que o programa pode mudar o identificador do usuário e ser executado com privilégios elevados. O ataque consiste em que o usuário pode iniciar um aplicativo suid e enviar a ele um sinal SIGSEGV, após o qual poderá carregar o conteúdo do arquivo core, que inclui um corte da memória do processo no momento da falha.
Por exemplo, um usuário pode iniciar "/usr/bin/su" e, em outro terminal, encerrar sua execução com o comando "kill -s SIGSEGV `pidof su`", depois do qual o systemd-coredump salvará o arquivo core no diretório /var/lib/systemd/coredump, configurando uma ACL que permite a leitura ao usuário atual. Como a ferramenta suid ‘su’ lê em memória o conteúdo de /etc/shadow, o atacante pode acessar informações sobre os hashes das senhas de todos os usuários no sistema. A ferramenta sudo não é vulnerável ao ataque, pois proíbe a geração de arquivos core através do ulimit.
De acordo com os desenvolvedores do systemd, a vulnerabilidade se manifesta a partir da versão 247 do systemd (novembro de 2020), mas segundo o pesquisador que identificou o problema, a versão 246 também está sujeita à vulnerabilidade. A vulnerabilidade ocorre se o systemd for compilado com a biblioteca libacl (que vem por padrão em todas as distribuições populares). Uma correção está atualmente disponível na forma de um patch. É possível acompanhar a correção nas distribuições nas seguintes páginas: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Como uma medida temporária de proteção, pode-se definir o sysctl fs.suid_dumpable para 0, desativando a transferência de dumps para o manipulador systemd-coredump.
Fonte: opennet.ru
