Se você roda Alpine Linux com SSH exposto, vale abrir uma janela de manutenção agora — mas sem sair aplicando comando no impulso. O projeto publicou um alerta para um bypass de autenticação por senha que atinge combinações específicas de OpenSSH, musl e PAM desativado. A correção já está nos repositórios; o risco real depende da sua configuração.
O cenário afetado junta três coisas: openssh-server sem PAM (ou openssh-server-pam com UsePAM no), PasswordAuthentication yes e pelo menos uma conta local sem senha cujo campo de senha seja *. Também é preciso haver alguma conta local com hash no formato $5$ ou $6$.
Quando essas condições existem, uma tentativa de senha longa pode ser aceita por uma conta que deveria ser somente por chave. É o tipo de detalhe que parece improvável até você lembrar de usuários criados para automação, imagens cloud e máquinas que foram recebendo ajustes ao longo do tempo.
Quem deve olhar isso primeiro
Priorize servidores Alpine acessíveis pela internet que ainda aceitam senha no SSH. O advisory cita usuários criados com adduser sem senha, contas marcadas com *, integrações de diretório via musl-nscd e imagens oficiais tiny-cloud como pontos que merecem revisão.
Contêiner que não executa sshd não entra nesse caso. Máquinas com PasswordAuthentication no também ficam fora do cenário descrito. O mesmo vale para openssh-server-pam com UsePAM yes. Não use isso como motivo para adiar a checagem: confirme no host, em vez de deduzir pela imagem ou pelo playbook antigo.
Faça a atualização — e não esqueça o daemon
As versões corrigidas chegaram às linhas suportadas do Alpine, e o caminho indicado pelo projeto é atualizar os pacotes:
apk upgrade -U -a
rc-service sshd restart
O segundo comando é parte da correção operacional. Atualizar o pacote não reinicia automaticamente um sshd que já estava em execução. Antes de tocar no acesso remoto, mantenha a sessão atual aberta e confirme que a autenticação por chave funciona em outra janela.
Se não der para atualizar imediatamente
O workaround recomendado é desligar a autenticação por senha, depois validar a configuração e reiniciar o serviço. Em releases recentes, um arquivo de drop-in deixa a intenção explícita:
mkdir -p /etc/ssh/sshd_config.d
echo 'PasswordAuthentication no' > /etc/ssh/sshd_config.d/00-no-passwords.conf
sshd -t && rc-service sshd restart
sshd -T | grep -i passwordauthentication
O último comando deve devolver passwordauthentication no. Em versões antigas, o diretório de drop-ins pode ser ignorado; nesse caso, a orientação do Alpine inclui também ajustar o /etc/ssh/sshd_config. Não feche sua sessão antes de validar um novo login por chave.
Uma checagem curta que evita pânico e omissão
- quais hosts usam Alpine e têm
sshdrodando; - quais ainda permitem senha;
- qual pacote OpenSSH e qual release estão instalados;
- se existem contas somente por chave, contas cloud ou contas de diretório;
- se o
sshdfoi reiniciado depois do update.
Se houver suspeita de exploração, o Alpine recomenda procurar em /var/log/messages linhas de Accepted password for em contas que não deveriam ter senha, além de revisar uso de doas, chaves autorizadas, novos usuários e arquivos recentes. Quando não for possível descartar um login, trate a máquina como comprometida e siga o processo de resposta a incidente da equipe.
Alertas assim lembram por que “SSH por senha está lá só por garantia” costuma custar mais do que parece. Chave bem gerida, inventário de acesso e restart verificado depois de patch não são perfumaria: são o que impede uma atualização correta de virar uma correção incompleta.