Uma vulnerabilidade no núcleo do Linux foi corrigida, recebendo o nome não oficial ssh-keysign-pwn. O problema permite que um usuário local não privilegiado leia arquivos que devem estar disponíveis apenas para o root, incluindo chaves privadas de host SSH e, em alguns cenários, /etc/shadow. No momento da publicação, um CVE separado para o problema ainda não havia sido atribuído.
Apesar do nome, não se trata de um erro no OpenSSH como servidor de rede sshd, mas sim de um defeito na lógica do núcleo do Linux, relacionado às verificações de ptrace e acesso a descritores de arquivo de outro processo através de pidfd_getfd(2). A utilidade OpenSSH ssh-keysign surgiu como um dos exemplos convenientes de exploração, pois trabalha com chaves privadas de host, que geralmente pertencem ao root e não estão disponíveis para usuários comuns.
A essência do erro é que a função __ptrace_may_access() tratava incorretamente o estado de um processo cuja estrutura de memória mm já havia desaparecido, mas ainda havia descritores de arquivo abertos. Durante a finalização do processo, o núcleo chama exit_mm() antes de fechar os arquivos através de exit_files(). Nesse curto intervalo, o processo já parece não ter um espaço de endereço de usuário comum, mas seus arquivos abertos ainda existem. Por causa disso, a verificação do estado 'dumpable' poderia ser contornada, e pidfd_getfd() poderia acessar um descritor de arquivo de outro processo com UID correspondente.
O cenário prático gira em torno de programas setuid, que primeiro abrem um arquivo sensível com privilégios de root, depois descartam privilégios e finalizam, ainda mantendo um descritor aberto. Na descrição publicada, como exemplo, é mencionado o ssh-keysign: ele abre /etc/ssh/ssh_host_{ecdsa,ed25519,rsa}_key, após o que descarta os direitos e pode finalizar se EnableSSHKeysign estiver desativado. Essas chaves devem estar disponíveis apenas para o root, pois são usadas para autenticação baseada em host.
Outro exemplo é o chage, que pode abrir /etc/shadow, depois descartar direitos efetivos e finalizar. Como resultado, o ataque não necessariamente concede imediatamente um shell com privilégios de root, mas permite acessar o conteúdo de arquivos que normalmente são considerados criticamente confidenciais. A revelação de /etc/shadow é perigosa devido à possibilidade de posterior ataque de força bruta offline, e a revelação de chaves privadas SSH de host representa o risco de falsificação de host ou realização de ataques a scripts SSH confiáveis.
A correção já foi integrada ao ramo principal do Linux. O commit 31e62c2ebbfd com o título ptrace: lógica ‘get_dumpable()’ ligeiramente mais sensata altera o comportamento da verificação de dumpabilidade: o núcleo agora preserva o estado user_dumpable quando mm desaparece e exige uma verificação correta de CAP_SYS_PTRACE para contornar isso. O patch afeta include/linux/sched.h, kernel/exit.c e kernel/ptrace.c.
A vulnerabilidade foi reportada pela Qualys e corrigida por Linus Torvalds em 14 de maio de 2026. O Phoronix observa que, no momento da publicação, o problema afetava todas as versões do núcleo Linux até o estado atual da árvore mainline antes da correção. O autor do PoC também indica que são vulneráveis núcleos anteriores ao commit 31e62c2ebbfd, incluindo ramos estáveis até 14 de maio.
É importante ressaltar que, para a exploração, não é necessário carregar módulos específicos do núcleo, como em várias vulnerabilidades recentes de LPE. É suficiente ter acesso local não privilegiado ao sistema e um processo helper privilegiado adequado. O desenvolvedor do Debian, Daniel Baumann observou, que este problema deve ser resolvido com uma atualização do núcleo e o posterior reinício no núcleo corrigido.
No repositório publicado com a demonstração, foi afirmada a verificação no Raspberry Pi OS Bookworm com núcleo 6.12.75, Debian 13, Ubuntu 22.04, Ubuntu 24.04, Ubuntu 26.04, Arch e CentOS 9. Essa lista deve ser considerada como dados do autor do PoC, e não como uma lista exaustiva: como o erro reside na lógica geral do núcleo, a cobertura real depende da versão do núcleo e da disponibilidade de correções backport em distribuições específicas.
Para os administradores, a principal recomendação é simples: instalar o pacote de núcleo atualizado de sua distribuição e reiniciar o sistema. Se houver razões para acreditar que já houve acesso local não privilegiado de um invasor na máquina, após a atualização, também é aconselhável considerar a rotação das chaves host do SSH e verificar as contas em /etc/shadow, uma vez que a própria vulnerabilidade está relacionada à leitura de arquivos sensíveis, e não apenas à contornagem abstrata da verificação de acesso.
No Debian, já começaram os trabalhos para a implementação da correção: Baumann informou sobre o cherry-pick do commit upstream nos trixie-fastforward-backports e o envio de um merge request para o Debian sid. No merge request, está claramente indicado que está sendo transferido o commit 31e62c2 para corrigir a lógica de dumpability do ptrace, permitindo que um usuário não privilegiado leia arquivos root.
Fonte: linux.org.ru
