Uma vulnerabilidade no systemd-coredump que permite determinar o conteúdo da memória de programas suid

Uma vulnerabilidade (CVE-2022-4415) foi identificada no componente systemd-coredump, que processa arquivos principais gerados após falha de processos, permitindo que um usuário local sem privilégios determine o conteúdo da memória de processos privilegiados em execução com o sinalizador suid root. O problema de configuração padrão foi confirmado nas distribuições openSUSE, Arch, Debian, Fedora e SLES.

A vulnerabilidade é causada pela falta de processamento correto do parâmetro sysctl fs.suid_dumpable no systemd-coredump, que, quando definido com o valor padrão 2, permite a geração de core dumps para processos com o sinalizador suid. Entende-se que os arquivos principais dos processos suid escritos pelo kernel devem ter direitos de acesso definidos para permitir a leitura apenas pelo usuário root. O utilitário systemd-coredump, que é chamado pelo kernel para salvar arquivos principais, armazena o arquivo principal no ID raiz, mas também fornece acesso de leitura baseado em ACL aos arquivos principais com base no ID do proprietário que iniciou originalmente o processo .

Este recurso permite que você baixe arquivos principais sem levar em conta o fato de que o programa pode alterar o ID do usuário e ser executado com privilégios elevados. O ataque se resume ao fato de que um usuário pode iniciar um aplicativo suid e enviar-lhe um sinal SIGSEGV e, em seguida, carregar o conteúdo de um arquivo principal, que inclui uma fatia de memória do processo durante um encerramento anormal.

Por exemplo, um usuário pode executar “/usr/bin/su” e em outro terminal encerrar sua execução com o comando “kill -s SIGSEGV `pidof su`”, após o qual o systemd-coredump salvará o arquivo principal no /var /lib/systemd/ diretório coredump, definindo uma ACL para ele que permite a leitura pelo usuário atual. Como o utilitário suid 'su' lê o conteúdo de /etc/shadow na memória, um invasor pode obter acesso a informações sobre os hashes de senha de todos os usuários do sistema. O utilitário sudo não é suscetível a ataques, pois proíbe a geração de arquivos principais via ulimit.

Segundo os desenvolvedores do systemd, a vulnerabilidade aparece a partir da versão 247 do systemd (novembro de 2020), mas segundo o pesquisador que identificou o problema, também é afetada a versão 246. A vulnerabilidade aparece se o systemd for compilado com a biblioteca libacl (por padrão em todas as distribuições populares). A correção está atualmente disponível como patch. Você pode acompanhar as correções nas distribuições nas seguintes páginas: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Como solução alternativa de segurança, você pode definir sysctl fs.suid_dumpable como 0, o que desativa o envio de dumps para o manipulador systemd-coredump.

Fonte: opennet.ru

Adicionar um comentário