Bezpečnostní hrozby · 6. listopadu 2026

Chyba v OpenSSH na Alpine Linuxu umožňuje přihlášení přes SSH bez znalosti hesla

Chyba CVE-2026-123158 v OpenSSH na Alpine Linuxu a dalších linuxových systémech s knihovnou musl bez PAM umožňuje za určitých podmínek přihlásit se přes SSH do účtu bez hesla. Oprava existuje od 5. listopadu 2026. Aktualizujte a restartujte sshd, nebo aspoň vypněte přihlašování heslem.

Co se stalo

Vývojáři OpenSSH vydali 5. listopadu 2026 urgentní bezpečnostní verzi OpenSSH 10.6p2. Řeší chybu CVE-2026-123158, které její objevitel Özgün Kültekin z firmy Wakefield dal přezdívku „sshole“. Týká se SSH serveru sshd na Linuxu, který používá knihovnu musl libc a hesla neověřuje přes PAM. Nejznámějším takovým systémem je Alpine Linux, který týž den vydal vlastní bezpečnostní upozornění a opravené balíčky.

Podle Alpine Linuxu se útočník, který se dostane k vašemu SSH portu, může za určitých podmínek přihlásit bez znalosti hesla. Stačí mu jedno připojení a podle Alpine to funguje pokaždé. Vývojář OpenSSH Damien Miller označil chybu za kritickou a správcům dotčených systémů doporučil okamžitě vypnout přihlašování heslem, případně SSH úplně.

Firma Previdian, která sleduje hrozby, podle Help Net Security zachytila první pokus o zneužití necelých devět hodin po zveřejnění chyby a na svém návnadovém serveru (honeypotu) potvrdila úspěšné získání přístupu s právy root. Zatím napočítala osm pokusů z jediné adresy. Americká agentura CISA chybu do katalogu zneužívaných zranitelností KEV zatím nezařadila a evropská databáze EUVD zneužití zatím neeviduje.

Proč je to nebezpečné

Jde o chybu typu „neočekávaná návratová hodnota“ (CWE-394). Při ověřování hesla sshd zahašuje zadané heslo a výsledek porovná s hodnotou v souboru /etc/shadow. Účty bez hesla tam mají místo hashe jen znak *. Funkce crypt() v knihovně musl při příliš dlouhém heslu selže a jako signál chyby vrátí právě *, takže se výsledek shoduje s uloženou hodnotou a server přihlášení pustí.

Představte si vrátného, který porovnává otisk klíče se seznamem. U lidí, kteří klíč nemají, je v seznamu napsáno „X“. Když se čtečka porouchá, vypíše také „X“, vrátný vidí shodu a otevře. Podle Alpine útočník potřebuje znát jméno účtu bez hesla a na stroji musí existovat alespoň jeden jiný účet s nastaveným heslem.

Útok probíhá přes síť, nevyžaduje žádné přihlášení ani spolupráci uživatele. Útočník získá příkazový řádek pod napadeným účtem. Pokud se tento účet umí stát rootem, například přes doas, jde o převzetí celého serveru, ze kterého může pokračovat dál do vaší sítě.

  • CVSS 8,1 z 10 (vysoká závažnost): skóre přidělila organizace MITRE. CVSS je standardní stupnice závažnosti. Hodnocení není maximální hlavně proto, že útok vyžaduje konkrétní podmínky v konfiguraci.
  • CISA KEV: katalog chyb, jejichž zneužívání potvrdila americká agentura CISA. Tato chyba v něm zatím není.
  • EPSS 0,98 % (6. listopadu 2026): odhad pravděpodobnosti, že chybu někdo zneužije během příštích 30 dnů. Je vyšší než u zhruba 62 % známých chyb. U čerstvě zveřejněné chyby se tento odhad ještě rychle mění.

Koho se to týká

Chyba se týká OpenSSH starších než 10.6p2 na Linuxu s knihovnou musl libc bez PAM. Podle vývojářů OpenSSH se netýká jiných systémů než Linuxu, linuxů s glibc ani systémů, kde hesla ověřuje PAM. Objevitel chyby potvrzuje, že Debian, Ubuntu, Fedora, Dropbear a OpenBSD jsou v bezpečí. Prověřit doporučuje OpenWrt, Buildroot, Yocto a mnoho Docker obrazů.

Na Alpine Linuxu jste podle Alpine zasaženi, pokud platí vše z následujícího:

  • běží balíček openssh-server (sestavený bez PAM), nebo openssh-server-pam s UsePAM no,
  • PasswordAuthentication je yes, což je výchozí nastavení,
  • existuje účet s * místo hesla v /etc/shadow: root (zhruba od Alpine 3.16, chrání ho ale výchozí PermitRootLogin prohibit-password), uživatelé jen s klíčem, uživatelé z adresářové služby přes musl-nscd či uživatel alpine v obrazech tiny-cloud,
  • alespoň jeden lokální účet má hash hesla typu $5$ nebo $6$.

Alpine uvádí jako dotčená vydání 3.21 až 3.24 a edge i starší 3.16 až 3.20. Cloudové obrazy tiny-cloud od 3.18.11 po 3.24.3 mají uživatele alpine s doas bez hesla, tedy s cestou k rootovi. Zranitelné se stanou, jakmile na stroji přibude jakýkoli hash $6$.

Netýká se to kontejnerů bez sshd, systémů s PasswordAuthentication no, openssh-server-pam s UsePAM yes, zamčených účtů s ! v /etc/shadow ani obrazů nastavených přes cloud-init, který hesla vypíná.

Jak zjistit, zda jste zasaženi

Všechny příkazy níže pouze čtou data a nic nemění. Spouštějte je jako root. Nejprve zjistěte verzi Alpine a nainstalovaného balíčku OpenSSH:

cat /etc/alpine-release
apk info -v 2>/dev/null | grep openssh

Verzi balíčku porovnejte se seznamem v části o opravě. Pak ověřte, zda sshd běží a jak je nastavený:

rc-service sshd status
sshd -T | grep -iE 'passwordauthentication|usepam|permitrootlogin'

Nakonec zjistěte, které účty nemají heslo (*) a které mají hash $5$ nebo $6$. Příkazy vypíší jen jména účtů:

grep -E '^[^:]+:\*:' /etc/shadow | cut -d: -f1
grep -E '^[^:]+:\$[56]\$' /etc/shadow | cut -d: -f1

Pokud máte starší balíček, sshd běží, přihlašování heslem je zapnuté a oba seznamy obsahují alespoň jeden účet, je server zranitelný.

Jak to opravit

Opravu přináší OpenSSH 10.6p2. Alpine vydal opravené balíčky pro všechny větve od 3.16 po edge, tedy i pro starší vydání bez běžné podpory. Opravený balíček obsahují i vydání Alpine 3.21.10, 3.22.8, 3.23.8 a 3.24.4. Opravené verze balíčku openssh podle větve:

  • edge: 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
  • 1. Začněte servery, jejichž SSH port je dostupný z internetu.
  • 2. Aktualizujte balíčky a restartujte sshd (příkazy níže). Samotná aktualizace běžící proces nevymění, starý program by přijímal spojení dál.
  • 3. Ověřte verzi příkazy z části o kontrole.
  • 4. U cloudových instancí z obrazů tiny-cloud starších než 3.21.10, 3.22.8, 3.23.8 a 3.24.4 aktualizujte každou běžící instanci.
apk upgrade -U -a
rc-service sshd restart

Pokud nemůžete aktualizovat hned, Alpine i vývojáři OpenSSH doporučují alespoň nastavit PasswordAuthentication no v konfiguraci sshd a restartovat ho. Damien Miller z OpenSSH zmiňuje i možnost SSH na dotčených strojích úplně vypnout. Před změnou si ověřte, že funguje přihlášení klíčem, a stávající spojení nechte otevřené, dokud nové neotestujete. Konfiguraci před restartem zkontrolujte příkazem sshd -t. Pokud hesla na SSH nepotřebujete, doporučujeme je nechat vypnutá i po aktualizaci.

Co když už jste mohli být napadeni

Alpine doporučuje hledat v /var/log/messages řádky od sshd s textem Accepted password for u účtů, které heslo nemají, například alpine, root nebo uživatelé jen s klíčem. Takový záznam je vážný signál průniku. Příkazy níže prohledají i starší a komprimované logy:

grep -h "Accepted password for" /var/log/messages /var/log/messages.[0-9] 2>/dev/null
for f in /var/log/messages*.gz; do [ -e "$f" ] && gunzip -c "$f" | grep "Accepted password for"; done
  • Zkontrolujte používání doas a nedávno vytvořené uživatele.
  • Hledejte nové soubory a neznámé klíče v souborech authorized_keys.
  • Podle Previdianu útočník přicházel z jediné adresy v Japonsku, kterou firma uvedla pro Help Net Security. Používal příliš dlouhá hesla a v neinteraktivních SSH relacích spouštěl průzkumné příkazy id, uname a hostname. Všímejte si proto přihlášení z neznámých adres.

Pokud přihlášení nemůžete vyloučit, Alpine doporučuje považovat stroj za kompromitovaný. Odpojte ho ze sítě, zazálohujte logy a přizvěte odborníka na řešení incidentů ještě před přeinstalací. Nespouštějte „ukázkové“ exploity z GitHubu: Previdian varuje, že nejsou ověřené a mohou obsahovat malware.

Zdroje

Články sestavuje AI agent z veřejných zdrojů (výrobci, CISA, ENISA, NVD, NÚKIB, SK-CERT) a čísla verzí i CVE proti nim automaticky ověřuje. Před zásahem do produkce si postup vždy ověřte v bulletinu výrobce.

← Všechny hrozby · RSS

Potřebujete pomoct s opravou nebo kontrolou?

Pomohu vám zjistit, které systémy jsou zasažené, bezpečně je aktualizovat a zkontrolovat, zda útočník už nebyl uvnitř. Začněme úvodní konzultací, při spolupráci se odečte z ceny projektu.