Der Sicherheitsforscher Ozgun Kultekin hat eine neue Sicherheitslücke im OpenSSH-Protokoll aufgedeckt, die den Namen „*sshole“ trägt. Sie ermöglicht es Angreifern, sich bei Linux-Konten anzumelden, die speziell so konfiguriert wurden, dass eine Anmeldung per Passwort verhindert wird. Diese Schwachstelle tritt insbesondere in Systemen auf, die auf der musl C-Bibliothek basieren, was bekannte Distributionen wie Alpine Linux und OpenWrt gefährdet.
Technische Funktionsweise der Schwachstelle
Der herkömmliche Schutz in Linux-Systemen basiert darauf, den Passwort-Hash durch ein Sternchen (*) in der Datei /etc/shadow zu ersetzen, um eine Anmeldung per Passwort zu verhindern. Um Schwachstellen bei der Benutzernamensaufzählung (Username Enumeration), die 2016 auftraten, zu vermeiden, haben die OpenSSH-Entwickler das System so angepasst, dass der Hashing-Prozess auch für Konten durchgeführt wird, die keinen gültigen Hash besitzen. Dies soll eine einheitliche Antwort des Servers unabhängig vom Kontostatus gewährleisten.
Das Problem liegt darin, dass die musl C-Bibliothek, speziell die Funktion crypt(), ein Sternchen (*) als Wert zurückgibt, wenn der Hashing-Prozess fehlschlägt. Dies geschieht genau dann, wenn die Länge des eingegebenen Passworts die Grenze von 256 Bytes überschreitet. Dies führt dazu, dass der aus dem fehlerhaften Versuch resultierende Wert mit dem in der Datei /etc/shadow für das deaktivierte Konto gespeicherten Wert übereinstimmt, was OpenSSH täuscht und die Anmeldung ermöglicht.
Warum ist diese Nachricht wichtig?
Die eigentliche Gefahr besteht darin, dass diese Schwachstelle zu vollen Root-Rechten in Cloud-Computing-Umgebungen führen kann. Der Forscher warnte, dass offizielle Alpine Linux-Images, die auf AWS- und Azure-Plattformen verwendet werden, ein Standardkonto namens „alpine“ enthalten, das über doas-Berechtigungen ohne Passwortanforderung verfügt. Dies könnte es einem Angreifer ermöglichen, die Schwachstelle auszunutzen, um die vollständige Kontrolle über den Server zu erlangen.
Voraussetzungen für die Ausnutzung und betroffene Systeme
Diese Schwachstelle betrifft nicht alle Systeme; Systeme, die auf der glibc-Bibliothek basieren (wie Debian, Ubuntu und Fedora) oder die PAM-Authentifizierung verwenden, bleiben sicher. Damit die Ausnutzung erfolgreich ist, müssen folgende Bedingungen erfüllt sein:
- OpenSSH muss auf einem System laufen, das auf der musl-Bibliothek basiert (wie Alpine Linux, OpenWrt, Buildroot oder Yocto).
- Die PAM-Authentifizierung muss deaktiviert sein (dies ist die Standardeinstellung im openssh-server-Paket unter Alpine Linux).
- Die Passwort-Authentifizierung (Password Authentication) muss in den SSH-Einstellungen aktiviert sein.
- Es muss mindestens ein Konto vorhanden sein, dessen Passwort mit einem Sternchen (*) deaktiviert wurde.
Schutzmaßnahmen und Überprüfung
Die OpenSSH-Entwickler haben die Version 10.6p2 veröffentlicht, die diese Schwachstelle endgültig behebt. Systemadministratoren wird empfohlen, OpenSSH-Pakete sofort zu aktualisieren. Falls ein sofortiges Update nicht möglich ist, können die Risiken minimiert werden, indem die Passwort-Authentifizierung in der Konfigurationsdatei durch die Einstellung PasswordAuthentication no deaktiviert und der Dienst neu gestartet wird.
Um zu überprüfen, ob das System möglicherweise kompromittiert wurde, können die Authentifizierungsprotokolle auf erfolgreiche Anmeldungen bei Konten untersucht werden, die eigentlich deaktiviert sein sollten. Dies kann unter Alpine Linux mit folgendem Befehl erfolgen:
grep "Accepted password" /var/log/messages