Venerdì 6 novembre 2026
L’edizione di oggi
Millebit
AI · Software · QA
Il segnale, non il rumore.

Gli articoli di Millebit sono scritti con l’intelligenza artificiale a partire da fonti citate in ogni pezzo. Come lavoriamo

QA e affidabilità

OpenSSH su sistemi musl senza PAM accetta password da 257+ caratteri e sblocca account con '*'

Testo scritto con l’intelligenza artificiale a partire da una fonte citata, senza revisione umana prima della pubblicazione.

Un comportamento introdotto in musl nel 2012 e la gestione delle verifiche di OpenSSH dal 2016 permettono l'accesso a account 'password-locked' su Alpine e altre immagini musl-based.

Illustrazione generata con l’intelligenza artificiale

OpenSSH su Linux con musl e senza PAM consente l’accesso a account bloccati con un asterisco nel campo password se l’utente invia una password di 257 o più caratteri. Il comportamento è sfruttabile dal 20161.

Due scelte di musl del 2012. crypt() non restituisce più NULL in caso di errore, ma un singolo carattere: “”1. L’implementazione di sha512crypt impone un limite di 256 byte. Oltre, crypt fallisce e restituisce “”. È scritto nel codice e nel commento1. Una password troppo lunga produce il simbolo storicamente usato per marcare un account bloccato.

Nel 2016 OpenSSH ha corretto un oracle di temporizzazione (CVE-2016-6210). Se l’utente non esiste, sshd ruba il salt da un altro account ed esegue comunque l’hash, così la risposta impiega lo stesso tempo. La patch parla di “invalid users”. Riguarda anche gli account reali il cui campo è “”1. Su musl, una password di 257+ caratteri fa fallire crypt, produce “”, e la logica di sshd prosegue comunque la verifica. Su build con musl e senza PAM, può dire sì dove dovrebbe dire no1.

Nel 1980 Bill Joy mise “*” nel campo password dell’account daemon in 3BSD. Non è un hash, quindi nessuna password può combaciare. In /etc/passwd scrisse come “real name” “the devil himself”1. Oggi l’asterisco sopravvive in /etc/shadow per indicare “nessun login via password”. Musl dal 2012 usa lo stesso carattere per segnalare un errore di crypt1.

Alpine è finita su questo percorso. Nel 2019, dopo CVE-2019-5021 sulle immagini senza password di root, passò a “!” per bloccare root. Senza PAM, “!” bloccava anche le chiavi SSH, usate dalle cloud image. Nel 2022, Alpine 3.16 tornò a “” per root: account bloccato, chiavi di nuovo funzionanti. “Narrator: it did not”1. Su sistemi musl senza PAM, “” riapre la porta all’effetto collaterale con password oltre 256 byte.

Per dieci anni nessuno ha collegato i punti. Un box fresco senza password non è colpito. Una “” in shadow richiede prima un tentativo sbagliato. OpenSSH testa su OpenBSD e glibc. Musl non testa sshd. Molte distro passano da PAM, che non chiama nemmeno crypt quando vede “”. La combinazione resta invisibile nelle pipeline di build e nei test di regressione1.

Segnali c’erano. Nel 2013 un bug Debian chiese a glibc di copiare l’idea di musl, anni dopo Debian passò a libxcrypt, che usa “0”, una distanza di un carattere dalla collisione con “”1. Nel dicembre 2024 una discussione su busybox passwd segnalò che un input da 257 caratteri rompeva tutto su musl, con lo stesso limite e lo stesso “*”, ma nessuno disse “sshd”1. Il 30 ottobre 2026 una revisione di sicurezza in OpenSSH toccò pick_salt(), quattro righe sopra il bug decisivo. Quattro giorni dopo, l’autore della segnalazione lo trovò testando vari build di sshd con e senza PAM, su glibc e musl, e 17.600 login “strani”: solo musl senza PAM disse sì dove non doveva1.

Su host musl che non usano PAM, una singola password lunghissima può bastare se in /etc/shadow c’è una “*”1.

Fonti

  1. Vulnerability in OpenSSH on musl Linux distros w/o PAM allows login to password-locked accounts with ANY 257+ character password since 2016 Tildes ~comp
Come è nato questo articolo Scritto da un sistema di intelligenza artificiale, con controlli automatici

Millebit non ha giornalisti che scrivono gli articoli: li scrive un motore editoriale basato su modelli di intelligenza artificiale, a partire dalle fonti elencate qui sopra. Prima di uscire, ogni testo passa questi controlli:

  • Rilettura. Un passaggio toglie i tic della prosa generata da un modello, come i contrasti costruiti e le frasi che annunciano invece di informare, senza toccare fatti e fonti.
  • Fedeltà alle fonti. Un passaggio dedicato toglie ogni affermazione che le fonti non sostengono. Valutazione su questo pezzo: 9/10.
  • Anti-cliché. Un filtro scarta frasi fatte, enfasi e tic della prosa artificiale: superato.
  • Giudizio editoriale. Un modello valuta il pezzo su sette criteri (apertura, chiarezza, economia, concretezza, voce, struttura, fedeltà) e sotto 7,8/10 non si pubblica. Questo articolo ha preso 7,9/10.

I controlli riducono gli errori ma non li eliminano: un modello può fraintendere una fonte. Per le decisioni importanti, risali alla fonte originale. Se trovi un errore, segnalacelo.

Come funziona Millebit, nel dettaglio →

Il filo della storia

  1. Falla in OpenSSH permette accesso a account con password disabilitate
  2. Questo articolo
Hai trovato un errore? Segnalacelo
Tipo di segnalazione

Leggiamo ogni segnalazione. Le correzioni fatte sono elencate in Correzioni. L’email, se la lasci, serve solo a risponderti.