Várias vulnerabilidades foram detectadas no GNU Screen que permitiam a obtenção de privilégios de root.

vulnerabilidade

Há alguns dias foi anunciado informações sobre uma auditoria de segurança que revelou cinco vulnerabilidades críticas no popular multiplexador de terminal Tela GNU, usado para gerenciar várias sessões de console em um único terminal.

Uma delas (CVE-2025-23395, a vulnerabilidade mais perigosa) permite que um invasor obtenha privilégios de root em sistemas afetados (a vulnerabilidade afeta apenas a versão 5.0.0 do GNU Screen), incluindo em distribuições como Fedora, Arch Linux, NetBSD, entre outras. Outras versões, como Debian, Ubuntu e RHEL, no entanto, ainda usam a versão 4.x, que não é vulnerável a essa falha específica.

CVE-2025-23395: Escalonamento de privilégios críticos

É mencionado que o problema ocorre quando o GNU Screen é executado com o bit raiz setuid (caso do Arch e NetBSD), desdee a função logfile_reopen() é executada antes de diminuir os privilégios, que permite ao usuário manipular o registro para gravar arquivos arbitrários como root. Em uma fazenda típica, eO invasor exclui o arquivo de log original e o substitui por um link simbólico. para um arquivo de sistema. Quando você reabre o arquivo, o Screen o grava com permissões de root, permitindo a entrada do conteúdo malicioso.

Esse problema afeta o Screen 5.0.0 quando executado com privilégios setuid-root. A função logfile_reopen() não remove privilégios ao operar em um caminho fornecido pelo usuário. Isso permite que usuários sem privilégios criem arquivos em locais arbitrários com propriedade root, a propriedade de grupo (real) do usuário que faz a chamada e modo de arquivo 0644. Todos os dados gravados no Screen PTY serão registrados neste arquivo. Arquivos existentes também podem ser usados ​​para registro desta maneira: os dados serão anexados ao arquivo em questão, mas o modo e a propriedade do arquivo permanecerão inalterados.

este ataque pode levar ao controle total do sistema se explorado adequadamente, pois permite que você modifique arquivos confidenciais ou altere scripts de inicialização. O Fedora é parcialmente protegido porque o Screen é instalado com o bit setgid, limitando a superfície de ataque.

Outras vulnerabilidades relevantes

A auditoria, conduzida pela equipe de segurança do SUSE Linux, também identificou outras falhas importantes:

  • CVE-2025-46802: Em sessões multiusuário, um invasor pode obter permissões globais de leitura e gravação em dispositivos TTY, como /dev/pts/1, afetando as ramificações 4.x e 5.x.
  • CVE-2025-46803: A ramificação 5.0 define permissões inseguras (0622) em dispositivos PTY, permitindo a gravação por qualquer usuário.
  • CVE-2025-46804: Um vazamento de informações permite deduzir a existência de arquivos ou diretórios usando mensagens de erro ao definir a variável SCREENDIR.
  • CVE-2025-46805: Uma condição de corrida ao enviar sinais SIGCONT e SIGHUP pode resultar em negação de serviço.

Um uso indevido de strncpy também foi detectado, o que pode causar travamentos ao executar comandos com formatação especial, um problema exclusivo da versão 5.0.

Falta de manutenção e suporte do SUSE

A descoberta dessas vulnerabilidades expôs problemas mais profundos na manutenção do GNU Screen. De acordo com a equipe da SUSE, Os atuais mantenedores do projeto não entendem completamente a base de código nem problemas de segurança, o que os forçou a desenvolver patches para algumas das falhas descobertas por conta própria. O relatório foi enviado aos desenvolvedores em 7 de fevereiro, mas todo o conjunto de vulnerabilidades não pôde ser corrigido dentro do período de carência acordado de 90 dias.

O que fazer se você usar o GNU Screen?

Usuários de sistemas que incluem Screen 5.0.0 com setuid root deve atualizar imediatamente para a versão 5.0.1 ou reverter temporariamente para uma versão 4.x se nenhum pacote estiver disponível. Como medida de mitigação, o bit setuid também pode ser removido do executável Screen:

sudo chmod u-s /usr/bin/screen

No entanto, Isso pode afetar a funcionalidade como compartilhamento de sessão entre usuários. Por fim, vale mencionar que a versão 5.0.1 lançada recentemente corrige esse e outros bugs e agora está disponível em distribuições como Arch Linux e FreeBSD.

Se você interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir