Sicherheitswarnung · Kritisch
Alpine Linux OpenSSH: Passwort-Login-Umgehung in sshd ohne PAM (CVE-2026-123158)
· 5 Minuten Lesezeit · Centoculus Security Team
Bekannt seit · Angriffe bestätigt seit
Betroffen: OpenSSH sshd auf Alpine Linux 3.16 bis 3.24 und edge, ohne PAM gebaut oder mit UsePAM no, vor den korrigierten openssh-Paketen (Upstream-Fix: OpenSSH 10.6p2)
Was ist passiert
Alpine Linux hat am 05.11.2026 eine Sicherheitsmeldung zu seinem OpenSSH-Server veröffentlicht. Sie beschreibt eine Umgehung der Passwortauthentifizierung. Wer den SSH-Port erreichen kann, kann sich bei Konten anmelden, für die kein Passwort gesetzt ist. Dafür ist kein Passwort nötig, und eine einzige Verbindung genügt. Als Alpine die Meldung veröffentlichte, war noch keine CVE-ID vergeben. Das Problem wird inzwischen als CVE-2026-123158 geführt.
Am 09.11.2026 hat CISA CVE-2026-123158 in seinen Katalog bekannter ausgenutzter Schwachstellen aufgenommen. CISA macht keine Angaben zu den Angriffen.
Laut Alpine liegt die Ursache darin, wie sshd Passwörter prüft, wenn es ohne PAM gebaut wurde. Der Passwortversuch wird mit der C-Bibliotheksfunktion crypt() gehasht und das Ergebnis mit dem gespeicherten Passwortfeld verglichen. Bei Konten ohne Passwort übernimmt sshd das Salt eines anderen Kontos. musl, die C-Bibliothek, die Alpine verwendet, gibt von crypt() die Zeichenkette * als Fehler zurück, wenn das Passwort länger als 256 Byte ist. * steht auch im Passwortfeld jedes Kontos ohne Passwort. Deshalb stimmt der Vergleich überein und die Anmeldung gelingt. Die OpenSSH-Entwickler haben sshd so geändert, dass dieser Fall vermieden wird (Commit 4353fdc, in OpenSSH 10.6p2). Sie beschreiben die Umgehung als Problem, das „einige Konfigurationen und Laufzeitkonfigurationen“ betrifft.
Wer ist betroffen
Dies ist kein allgemeines OpenSSH-Problem unter Linux. Laut der Alpine-Meldung sind Sie nur betroffen, wenn alle der folgenden Punkte zutreffen:
- Sie betreiben sshd auf Alpine Linux mit dem Paket
openssh-server, das ohne PAM gebaut ist. Oder Sie betreibenopenssh-server-pammitUsePAM no. PasswordAuthenticationist aufyesgesetzt. Dies ist der OpenSSH-Standard.- Auf dem System gibt es ein Konto, dessen Passwortfeld in
/etc/shadow*lautet. Dazu gehören:root, das seit etwa Alpine 3.16 alsroot:*ausgeliefert wird.rootist nur direkt erreichbar, wennPermitRootLogin yesgesetzt ist. Allerdings genügt jedes andere erreichbare Konto, das etwa überdoasroot werden kann.- Nur-Schlüssel-Benutzer, die mit
adduserohne Passwort oder mitusermod -p '*'angelegt wurden. - Verzeichnisbenutzer über musl-nscd (nslcd, winbind, sssd).
- Der Benutzer
alpinein den offiziellen tiny-cloud-Images.
- Mindestens ein lokales Konto hat einen Passwort-Hash mit
$5$oder$6$.
Alpine nennt diese betroffenen Versionen: 3.21 bis 3.24, edge sowie die älteren Versionen 3.16 bis 3.20.
tiny-cloud-Images: Die offiziellen tiny-cloud-Images von 3.18.11 bis 3.24.3 enthalten einen Benutzer alpine mit dem Passwortfeld * und ein doas ohne Passwortabfrage. Sie werden ausnutzbar, sobald auf dem System ein $6$-Hash existiert. Das passiert zum Beispiel, wenn ein Administrator ein Konsolenpasswort setzt oder wenn über user-data ein Benutzer mit hashed_passwd angelegt wird. Ein Angreifer kann sich dann als alpine anmelden und root werden.
Nicht betroffen:
- Debian, Ubuntu, RHEL und andere glibc-basierte Distributionen, bei denen sshd PAM verwendet. Das fehlerhafte Verhalten von
crypt()stammt von musl. - Docker und andere Container, auf denen kein sshd läuft.
- Systeme mit
PasswordAuthentication no. - Systeme mit
openssh-server-pamundUsePAM yes. - Gesperrte Konten, deren Passwortfeld mit
!beginnt. - Systeme, auf denen kein Konto einen Passwort-Hash im
$-Format hat. - Cloud-Images, die über cloud-init konfiguriert werden und
PasswordAuthentication nosetzen.
Was Sie jetzt tun sollten
-
Aktualisieren Sie openssh auf jedem Alpine-System, auf dem sshd läuft:
apk upgrade -U -a. Das korrigierte Paket ist in Alpine 3.21.10, 3.22.8, 3.23.8 und 3.24.4 enthalten. Die korrigiertenopenssh-Paketversionen sind:- 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
Alpine 3.21 hat das Ende des Supports am 01.11.2026 erreicht. Alpine hat dennoch für alle Versionen bis zurück zu 3.16 korrigierte Pakete veröffentlicht.
-
Starten Sie sshd neu:
rc-service sshd restart. Das Aktualisieren des Pakets startet den laufenden Daemon nicht neu. Ohne Neustart ist das System weiterhin verwundbar. -
Wenn Sie nicht sofort aktualisieren können, deaktivieren Sie die Passwort-Anmeldung. Stellen Sie zuerst sicher, dass die Anmeldung per SSH-Schlüssel funktioniert, und lassen Sie Ihre aktuelle Sitzung offen, bis eine neue Anmeldung erfolgreich war. Setzen Sie dann
PasswordAuthentication no, auch innerhalb allerMatch-Blöcke. Prüfen Sie die Konfiguration mitsshd -t, starten Sie mitrc-service sshd restartneu und bestätigen Sie die Einstellung mitsshd -T | grep -i passwordauthentication. Die unten verlinkte Alpine-Meldung enthält fertige Befehle dafür. Das Aktualisieren oder das Deaktivieren der Passwort-Anmeldung reicht aus, um die Lücke zu schließen. -
Aktualisieren Sie alle laufenden Instanzen, die aus tiny-cloud-Images vor 3.21.10, 3.22.8, 3.23.8 und 3.24.4 stammen, oder deaktivieren Sie dort die Passwortauthentifizierung. Diese Images enthalten das korrigierte Paket nicht.
-
Wenn Sie OpenSSH selbst auf einem musl-basierten System ohne PAM bauen, aktualisieren Sie auf OpenSSH 10.6p2.
-
Prüfen Sie erreichbare Systeme auf Anzeichen eines Einbruchs, wie unten beschrieben.
So prüfen Sie, ob Sie betroffen sind
- Prüfen Sie die Distribution:
cat /etc/alpine-release. Wenn die Datei nicht existiert, ist das System kein Alpine, und diese Meldung betrifft es nicht. - Prüfen Sie das installierte Paket:
apk info -v | grep openssh. Vergleichen Sie die Version mit der Liste oben. - Prüfen Sie die aktiven sshd-Einstellungen:
sshd -T | grep -i -E 'usepam|passwordauthentication'. Sie sind von diesem Problem nicht betroffen, wennpasswordauthentication noangezeigt wird oder wenn Sieopenssh-server-pamverwenden undusepam yesangezeigt wird. - Suchen Sie Konten ohne Passwort:
grep -E '^[^:]+:\*:' /etc/shadow. - Suchen Sie Konten mit einem Hash
$5$oder$6$:grep -E '^[^:]+:\$[56]\$' /etc/shadow.
Wenn beide Suchen Ergebnisse liefern, die Passwort-Authentifizierung aktiviert ist und das Paket noch nicht korrigiert wurde, ist das System verwundbar.
Anzeichen eines Einbruchs: Durchsuchen Sie /var/log/messages nach sshd-Zeilen mit Accepted password for für ein Konto ohne Passwort, etwa alpine, root oder einen Nur-Schlüssel-Benutzer. Prüfen Sie außerdem die Nutzung von doas, kürzlich angelegte Benutzer, kürzlich geänderte Dateien und authorized_keys-Dateien auf exponierten Rechnern. Die Empfehlung von Alpine lautet: Wenn Sie eine solche Anmeldung nicht ausschließen können, betrachten Sie das System als kompromittiert.
Quellen
Wenn du Linux-Server betreibst, prüf auch
Weitere Beiträge
Sicherheitswarnungen ·
Citrix NetScaler ADC und Gateway: kritische Speicherfehler ermöglichen Dienstverweigerung (CVE-2026-120868)
Citrix hat neun kritische Speicherfehler in NetScaler ADC und NetScaler Gateway behoben, die zu einer Dienstverweigerung führen können. CVE-2026-120868 betrifft jede Installation. Aktualisieren Sie auf 14.1-73.57, 13.1-64.39 oder die passenden FIPS-Builds.
Sicherheitswarnungen ·
PostgreSQL CVE-2026-6460: Datenbankbenutzer, die Objekte anlegen können, können Code auf dem Server ausführen
PostgreSQL 18.7, 17.12, 16.16, 15.20 und 14.25 beheben CVE-2026-6460 und 51 weitere Schwachstellen. Ein Datenbankbenutzer, der Objekte anlegen kann, kann Code als Betriebssystembenutzer ausführen, unter dem PostgreSQL läuft. Aktualisieren Sie den Server und die C-Erweiterungen gemeinsam.
Sicherheitswarnungen ·
Node.js: HTTP/2- und HTTPS-Schwachstellen lassen Clients Server abstürzen und Daten anderer Nutzer lesen
Node.js hat 16 Schwachstellen behoben, sieben davon mit hohem Schweregrad. Nicht authentifizierte Clients können HTTP/2-Server zum Absturz bringen oder Speicher anderer Verbindungen auslesen, einschließlich TLS-Schlüsseln. Die korrigierten Versionen sind 22.23.5, 24.22.3 und 26.13.1.