sshole (CVE-2026-123158): il difetto OpenSSH che colpisce Alpine Linux e come risolverlo
Di Eoin Villarin, 2026-11-07
- Un difetto di OpenSSH chiamato sshole permette agli aggressori di accedere a account senza password su Alpine Linux e altri sistemi basati su musl, e viene già sfruttato. Chi è interessato, come controllare i server e come risolverlo.
Sono interessato dal difetto sshole di OpenSSH?
Sei a rischio se un server esegue OpenSSH precedente alla versione 10.6p2 su un sistema basato su musl come Alpine Linux senza PAM, consente login SSH con password e ha un account il cui campo password è solo un asterisco accanto a un altro account con un hash di password reale. Debian, Ubuntu, Fedora e configurazioni che utilizzano PAM non sono interessati.
Punti chiave
- CVE-2026-123158, chiamato sshole, permette agli attaccanti di accedere agli account senza password su Linux basati su musl inviando una password di grandi dimensioni.
- Il pacchetto openssh-server predefinito di Alpine Linux è interessato, mentre i sistemi glibc come Ubuntu e le configurazioni che utilizzano PAM non lo sono.
- Gli attaccanti lo hanno sfruttato meno di nove ore dopo la sua pubblicazione e hanno ottenuto l'accesso come root su un honeypot.
- La correzione è OpenSSH 10.6p2 o il pacchetto patchato di Alpine per il tuo ramo, seguito da un riavvio di sshd.
- Se non puoi aggiornare ancora, imposta PasswordAuthentication no e usa chiavi SSH.
Un difetto appena divulgato di OpenSSH chiamato sshole, tracciato come CVE-2026-123158, permette agli attaccanti di accedere a determinati account Linux che non sono supposti accettare password. Interessa OpenSSH su sistemi basati su musl come Alpine Linux, è stato risolto il 5 novembre 2026 e gli attaccanti hanno iniziato a utilizzarlo meno di nove ore dopo la sua pubblicazione. Se esegui server Alpine, immagini Docker basate su Alpine con SSH o piccoli dispositivi su OpenWrt, controllali oggi stesso.
Cos'è la falla OpenSSH sshole?
Sui sistemi basati su musl, la funzione crypt() della libreria C restituisce un singolo asterisco (*) quando non riesce a hashare una password, ad esempio quando la password è più lunga del limite di 256 byte. Molti sistemi Linux utilizzano anche un singolo * nel campo della password per indicare "questo account non ha password". OpenSSH ha confrontato i due, ha visto *, e li ha trattati come una corrispondenza. Inviare una password di dimensioni eccessive è stato sufficiente per accedere a un account senza password.
Il comportamento risale a una modifica del 2016 nella gestione delle password di OpenSSH. Il ricercatore di sicurezza Özgün Kültekin l'ha trovato utilizzando agenti AI che hanno eseguito circa 17.600 test di autenticazione. Il CVE ha un punteggio CVSS 3.1 di 8.1, che è classificato come Alto, e la correzione è stata inviata in OpenSSH 10.6p2.
Sono interessato?
Un server è a rischio quando tutte queste condizioni sono vere:
- Si esegue OpenSSH più vecchio della 10.6p2 su un sistema basato su musl, come Alpine Linux, OpenWrt, Buildroot o Yocto.
- sshd non utilizza PAM. Questa è l'impostazione predefinita per il pacchetto openssh-server di Alpine.
- Gli accessi con password SSH sono abilitati, che è il default di OpenSSH.
- Almeno un account ha solo * nel campo della password, come un utente solo con chiave, accanto a un altro account con un hash di password reale.
Le immagini cloud ufficiali AWS e Azure di Alpine dalla 3.18.11 alla 3.24.3 sono un caso grave: includono un utente alpine predefinito senza password e doas senza password, il che significa che un accesso riuscito può diventare root.
Non interessato: systemi basati su glibc come Debian, Ubuntu e Fedora, configurazioni che controllano le password tramite PAM, Dropbear e OpenBSD. Gli account con un hash di password reale non possono essere aggirati in questo modo.
Come controllare i tuoi server
Esegui questi come root su ogni server Alpine o contenitore che esegue sshd:
- Controlla le impostazioni SSH:
sshd -T | grep -i -E 'passwordauthentication|usepam'. Se l'autenticazione con password è disabilitata o PAM è attiva, questo difetto non può essere utilizzato. - Controlla il pacchetto installato:
apk list --installed | grep openssh, e confrontalo con le versioni corrette qui sotto. - Elenco account senza password:
awk -F: '$2=="*" {print $1}' /etc/shadow. - Cerca accessi a quegli account:
grep "Accepted password" /var/log/messages. Un login con password a un account con * nel campo della password significa che il server è probabilmente stato attaccato.
Come risolvere CVE-2026-123158 su Alpine Linux
Alpine ha fornito pacchetti patch per ogni ramo dalla 3.16 all'edge lo stesso giorno della divulgazione. Aggiorna e riavvia sshd, perché l'installazione dell'aggiornamento non riavvia il processo in esecuzione:
apk upgrade -U -a e poi rc-service sshd restart
| Ramo Alpine | Versione openssh fissata |
|---|---|
| bordo | 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 |
Per Docker, ricostruisci ogni immagine che contiene openssh da un'immagine di base fresca e ridistribuiscila. Nota che alcune immagini SSH su Docker Hub, come linuxserver's openssh-server, disabilitano di default gli accessi con password ma diventano esposte quando si imposta PASSWORD_ACCESS=true.
Le versioni Alpine precedenti alla 3.16 non ottengono alcun pacchetto fisso. Aggiornale a una versione supportata o utilizza la soluzione alternativa qui sotto.
Soluzione rapida: disabilita gli accessi con password SSH
Se non puoi aggiornare subito, imposta PasswordAuthentication no in /etc/ssh/sshd_config, riavvia sshd e esegui di nuovo il controllo sshd -T. Assicurati che il login con chiave SSH funzioni prima di farlo, altrimenti potresti bloccarti fuori. SSH con sola chiave è un'impostazione predefinita buona per qualsiasi server comunque.
Cosa fare se pensi di essere stato colpito
- Esamina l'utilizzo di doas, gli utenti creati di recente e ogni file authorized_keys.
- Controlla i processi sconosciuti, i lavori cron e le connessioni in uscita.
- Se non puoi escludere un compromesso, tratta il server come compromesso: ricostruiscilo da un'immagine pulita e ruota ogni password, chiave e token che conteneva.
- Non scaricare exploit proof-of-concept da GitHub per testare i tuoi server. I ricercatori avvertono che alcuni non sono verificati e possono contenere malware.
Mantenere i server aggiornati è una grande parte del manutenzione del sito web Faccio questo per i clienti. Se vuoi un aiuto per controllare il tuo hosting, la configurazione Docker o SSH, metti in contatto.
Domande frequenti
Ubuntu o Debian sono interessati dalla vulnerabilità sshole?
No. Debian, Ubuntu, Fedora e altri sistemi basati su glibc non sono interessati, né lo sono le configurazioni che utilizzano PAM per le verifiche di password.
La SSH con sola chiave mi protegge?
Sì. Con PasswordAuthentication impostato su no, il server non accetta password, quindi la falla non può essere utilizzata.
CVE-2026-123158 è in corso di sfruttamento?
Sì. La società di intelligence sulle minacce Previdian ha visto il primo tentativo meno di nove ore dopo la pubblicazione del CVE e un attaccante ha ottenuto l'accesso come root su uno dei suoi honeypot in esecuzione su Alpine Linux.
Quale versione di OpenSSH risolve il problema?
OpenSSH 10.6p2. Su Alpine, installa il pacchetto openssh corretto per il tuo ramo e riavvia sshd.
I container Docker sono interessati?
I container basati su Alpine che eseguono sshd con login password abilitati possono essere interessati. Ricostruirli da un'immagine di base aggiornata e ridistribuirli.
Devo riavviare dopo l'aggiornamento?
Sì. Il sshd in esecuzione mantiene il codice vulnerabile in memoria fino a quando non riavvii il servizio.
Fonti
- BleepingComputer: il difetto OpenSSH permette agli attaccanti di accedere agli account Linux disabilitati per la password
- Help Net Security: falla OpenSSH sfruttata nel mondo reale poche ore dopo la divulgazione
- Cycode: sshole bypass della password di OpenSSH su Alpine Linux
- Orca Security: bypass dell'autenticazione sshole su Alpine Linux