sshole (CVE-2026-123158): A falha do OpenSSH que atinge o Alpine Linux e como corrigi-la
Por Eoin Villarin, 2026-11-07
- Uma falha no OpenSSH chamada sshole permite que atacantes façam login em contas sem senha no Alpine Linux e outros sistemas baseados em musl, e já está a ser explorada. Quem é afetado, como verificar os seus servidores e como corrigi-lo.
Estou afetado pela falha sshole do OpenSSH?
Você está em risco se um servidor executa OpenSSH mais antigo que 10.6p2 em um sistema baseado em musl como Alpine Linux sem PAM, permite logins de senha SSH e tem uma conta cujo campo de senha é apenas um asterisco ao lado de outra conta com um hash de senha real. Debian, Ubuntu, Fedora e configurações que usam PAM não são afetadas.
Principais conclusões
- CVE-2026-123158, chamada sshole, permite aos atacantes fazerem login em contas sem palavra-passe no Linux baseado em musl, enviando uma palavra-passe de tamanho excessivo.
- O pacote openssh-server padrão do Alpine Linux é afetado, enquanto sistemas glibc como o Ubuntu e configurações que usam PAM não são.
- Atacantes exploraram-na menos de nove horas após ter sido publicada e ganharam acesso root num honeypot.
- A correção é o OpenSSH 10.6p2 ou o pacote corrigido do Alpine para sua filial, seguido por uma reinicialização do sshd.
- Se você não pode atualizar ainda, defina PasswordAuthentication no e use chaves SSH.
Uma falha recentemente divulgada no OpenSSH chamada sshole, rastreada como CVE-2026-123158, permite aos atacantes fazerem login em certas contas Linux que não são supostas aceitar palavras-passe. Afeta o OpenSSH em sistemas baseados em musl, como o Alpine Linux, foi corrigida a 5 de novembro de 2026, e os atacantes começaram a usá-la menos de nove horas após ter sido publicada. Se executa servidores Alpine, imagens Docker baseadas em Alpine com SSH, ou dispositivos pequenos no OpenWrt, verifique-os hoje.
O que é a falha sshole do OpenSSH?
Em sistemas baseados em musl, a função crypt() da biblioteca C retorna um asterisco (*) único quando falha ao hash de uma senha, por exemplo, quando a senha é mais longa que o limite de 256 bytes. Muitos sistemas Linux também usam um único * no campo de senha para significar "esta conta não tem senha." O OpenSSH comparou os dois, viu *, e tratou como uma correspondência. Enviar uma senha muito grande foi o suficiente para entrar em uma conta sem senha.
O comportamento remonta a uma alteração de 2016 no tratamento de senha do OpenSSH. O pesquisador de segurança Özgün Kültekin encontrou-o usando agentes de IA que executaram cerca de 17.600 testes de autenticação. O CVE tem uma pontuação CVSS 3.1 de 8.1, que é classificada como Alta, e a correção foi enviada no OpenSSH 10.6p2.
Estou afetado?
Um servidor está em risco quando todas estas condições são verdadeiras:
- Ele executa o OpenSSH mais antigo que a 10.6p2 em um sistema baseado em musl, como Alpine Linux, OpenWrt, Buildroot ou Yocto.
- o sshd não usa PAM. Este é o padrão para o pacote openssh-server do Alpine.
- Logins de senha SSH estão ativados, que é o padrão do OpenSSH.
- Quando menos uma conta tem apenas * no seu campo de palavra-passe, como um utilizador apenas com chave, ao lado de outra conta com um hash de palavra-passe real.
As imagens oficiais da Alpine para AWS e Azure, de 3.18.11 a 3.24.3, são um caso grave: incluem um utilizador alpine padrão sem palavra-passe e doas sem palavra-passe, o que significa que um login bem-sucedido pode tornar-se root.
Não afetado: sistemas baseados em glibc, como Debian, Ubuntu e Fedora, configurações que verificam as passwords através do PAM, Dropbear e OpenBSD. Contas com um hash de password real não podem ser ignoradas desta forma.
Como verificar seus servidores
Execute estes como root em cada servidor Alpine ou contêiner que execute sshd:
- Verifique as definições SSH:
sshd -T | grep -i -E 'passwordauthentication|usepam'. Se a autenticação de palavra-passe estiver desligada ou o PAM estiver ligado, esta falha não pode ser usada. - Verifique o pacote instalado:
apk list --installed | grep openssh, e compare-o com as versões corrigidas abaixo. - Listar contas sem senha:
awk -F: '$2=="*" {print $1}' /etc/shadow. - Procure por logins para essas contas:
grep "Accepted password" /var/log/messages. Uma autenticação de palavra-passe por login numa conta com * no seu campo de palavra-passe significa que o servidor foi provavelmente atacado.
Como corrigir o CVE-2026-123158 no Alpine Linux
A Alpine forneceu pacotes corrigidos para cada ramo de 3.16 a edge no mesmo dia da divulgação. Atualize e reinicie o sshd, porque instalar a atualização não reinicia o processo em execução:
apk upgrade -U -a e então rc-service sshd restart
| Ramo Alpine | Versão do openssh corrigida |
|---|---|
| borda | 10.6_p2-r0 |
| 3.24 | 10.3_p1-r2 |
| 3.23 | 10.2_p1-r1 |
| 3.22 | 10.0_p1-r11 |
| 3.21 | 9.9_p2-r1 |
| 3.20 | 9.7_p1-r6 |
| 3.19 | 9.6_p1-r3 |
| 3.18 | 9.3_p2-r4 |
| 3.17 | 9.1_p1-r7 |
| 3.16 | 9.0_p1-r6 |
Para o Docker, recompile cada imagem que contenha openssh a partir de uma imagem base limpa e redistribua-a. Observe que algumas imagens SSH no Docker Hub, como o linuxserver's openssh-server, desativam os logins de senha por padrão, mas ficam expostas quando o PASSWORD_ACCESS=true é definido.
Lançamentos Alpine mais antigos do que 3.16 não obtêm um pacote fixo. Atualize-os para uma versão suportada, ou use a solução alternativa abaixo.
Solução rápida: desativar logins de senha SSH
Se você não pode atualizar agora, defina PasswordAuthentication no em /etc/ssh/sshd_config, reinicie o sshd e execute novamente o teste sshd -T. Certifique-se de que o login com a chave SSH funciona antes de fazer isso, caso contrário, você pode ficar bloqueado. A SSH apenas com chave é um bom padrão para qualquer servidor, de qualquer forma.
O que fazer se você acha que foi atingido
- Revisar o uso do doas, usuários criados recentemente e todos os arquivos authorized_keys.
- Verifique processos desconhecidos, trabalhos cron e ligações de saída.
- Se você não pode descartar um compromisso, trate o servidor como comprometido: recompile-o a partir de uma imagem limpa e gire todas as senhas, chaves e tokens que ele possuía.
- Não faça o download de exploits de prova de conceito do GitHub para testar seus servidores. Os pesquisadores alertam que alguns não são verificados e podem conter malware.
Manter os servidores atualizados é uma grande parte do manutenção do site Eu faço para os clientes. Se você quiser uma ajuda para verificar sua hospedagem, configuração do Docker ou configuração SSH, entrar em contacto.
Perguntas frequentes
O Ubuntu ou Debian é afetado pelo sshole?
Não. Sistemas baseados em glibc como Debian, Ubuntu, Fedora e outros não são afetados, nem configurações que usam PAM para verificações de senha.
A SSH somente com chave me protege?
Sim. Com PasswordAuthentication definido como não, o servidor não aceita senhas, portanto a falha não pode ser usada.
O CVE-2026-123158 está sendo explorado?
Sim. A empresa de inteligência de ameaças Previdian viu a primeira tentativa menos de nove horas após a publicação do CVE, e um atacante ganhou acesso root em um de seus honeypots executando Alpine Linux.
Qual versão do OpenSSH corrige isso?
OpenSSH 10.6p2. No Alpine, instale o pacote openssh corrigido para sua branch e reinicie o sshd.
Os contêineres Docker são afetados?
Contêineres baseados no Alpine que executam sshd com logins de senha habilitados podem ser afetados. Reconstrua-os a partir de uma imagem base atualizada e redesloque.
Preciso reiniciar após atualizar?
Sim. O sshd em execução mantém o código vulnerável na memória até que você reinicie o serviço.
Fontes
- BleepingComputer: Falha no OpenSSH permite aos atacantes fazerem login em contas Linux desativadas para palavra-passe
- Help Net Security: falha no OpenSSH explorada no mundo selvagem horas após a divulgação
- Cycode: sshole Bypass de senha do OpenSSH no Alpine Linux
- Orca Security: bypass de autenticação sshole no Alpine Linux