OpenSSH 10.6p2 opravuje chybu, která umožnila vstup do linuxových účtů bez hesla

Portable OpenSSH 10.6p2 opravuje chybu v kombinaci sshd, musl a konfigurace bez PAM. Útočník se mohl přihlásit k účtu s deaktivovaným heslem.

Oprava v Portable OpenSSH 10.6p2 řeší chybu, která na některých linuxových systémech mohla útočníkovi umožnit přihlásit se přes SSH k účtu s vypnutým heslem. Zranitelnost se týká kombinace serveru sshd, knihovny musl a konfigurace bez podpory PAM. Útočník podle bezpečnostního upozornění Alpine Linuxu nepotřeboval znát heslo ani zkoušet více variant.

Chybu dle dostupných informací objevil Özgün Kültekin ze společnosti Wakefield. OpenSSH ji v poznámkách k vydání 10.6p2 označuje jako možnost obejití ověřování heslem v sshd na některých systémech Linuxu, pokud je server sestavený a provozovaný bez podpory PAM.

Nejde tedy o univerzální problém všech instalací OpenSSH ani o chybu, kterou by bylo možné zneužít proti každému účtu na libovolném serveru. Riziková je konkrétní souhra implementace funkce crypt() v musl, způsobu, jakým sshd ověřuje heslo, a účtu, jehož heslo bylo deaktivováno. Alpine Linux používá musl jako standardní systémovou knihovnu, proto vydal samostatné bezpečnostní upozornění a opravené balíčky.

Shoda se zástupným znakem místo hashovaného hesla

Linux obvykle neukládá hesla jako čitelný text. V databázi účtů je uložen hash, s nímž systém porovnává hash hodnoty zadané při přihlášení. U účtu s deaktivovaným heslem může být na místě hashe zástupný znak, který má autentizaci heslem zablokovat.

V popsaném případě se sshd spoléhal na to, že zvláštní návratová hodnota funkce crypt() nemůže být zaměněna za platný hash hesla. Implementace musl ale v relevantní chybové situaci vracela výchozí hodnotu *. Jestliže stejný znak představoval také uloženou hodnotu pro deaktivované heslo, mohl server vyhodnotit porovnání jako úspěšné.

Právě proto mohl být problém nebezpečný i tam, kde správce heslo účtu záměrně zablokoval. Takové opatření má běžně zabránit přihlášení heslem například u servisních nebo administrátorských účtů. V postižené konfiguraci se však blokovací hodnota mohla stát součástí chybné ověřovací cesty.

Technický popis na webu sshole.com sleduje původ problému až do roku 2012. Nejde tedy o nově zavedenou vlastnost musl ani o změnu v poslední verzi OpenSSH. Chyba dlouhodobě vyplývala z předpokladu v kódu sshd o chování crypt() a z odlišné implementace této funkce v musl.

Oprava kontroluje minimální délku hashe

Vývojáři OpenSSH změnili logiku kontroly v kódu sshd. Oprava už nespoléhá jen na rozpoznání konkrétní zástupné hodnoty vracené funkcí crypt(). Místo toho ověřuje, zda vrácený řetězec dosahuje minimální délky očekávané pro hash hesla, definované konstantou MIN_PASSWORD_HASH_LEN.

Alpine Linux ve svém advisory upozorňuje, že na zasaženém systému stačilo útočníkovi navázat jediné spojení na dostupný SSH port. Útok podle distribuce nepotřeboval opakované pokusy, a proto by jej nemusely zachytit mechanismy sledující neúspěšná přihlášení nebo obvyklé pokusy o hádání hesel.


(9. 11. 2026 | redx)

Facebook Twitter

Komentáře, názory a rady
Zatím sem nikdo nevložil žádný komentář. Buďte první...

>>> Číst a vkládat komentáře <<<