Falha no OpenSSH permite entrar em contas sem senha no Alpine Linux
Mudança na biblioteca musl faz crypt() devolver '*' para senhas muito longas; builds do sshd sem PAM podem aceitar esse '*' como validação e liberar acesso.
Pesquisadores demonstraram publicamente, na quinta-feira, uma vulnerabilidade que permite a um atacante remoto acessar uma conta cujo campo de senha em /etc/shadow é '*' apenas enviando uma senha com tamanho entre 257 e 1.024 bytes.
A causa é o comportamento da função crypt() da biblioteca musl libc, que devolve a string '*' em certas falhas e quando a entrada ultrapassa 256 bytes. Em versões do OpenSSH compiladas sem PAM, o resultado de crypt() é comparado diretamente ao marcador '*' usado para contas sem senha, fazendo com que a comparação dê positivo e o acesso seja concedido.
Estão afetados sistemas que usam musl (como Alpine Linux) rodando openssh-server sem PAM, com PasswordAuthentication ativado e com ao menos uma conta no host que tenha um hash de senha $5 ou $6 válido.
Foi lançada uma correção no OpenSSH 10.6p2, e a equipe do Alpine publicou pacotes do openssh corrigidos. Administradores devem atualizar os pacotes e reiniciar o processo sshd em execução ou, enquanto isso, desativar a autenticação por senha até aplicar a correção.
Operadores devem verificar logs procurando linhas do tipo 'Accepted password for' em contas que deveriam ser sem senha, inspecionar imagens pequenas na nuvem que trazem o usuário 'alpine' com campo '*' e doas sem senha, e considerar qualquer login por senha inexplicado como possível comprometimento.