Nach Angaben von Kultekin besteht das Problem seit 2016 und geht auf die Art zurück, wie OpenSSH Fehler bei der Passwortprüfung auf musl-Systemen behandelt. Linux-Konten lassen sich gegen Passwortanmeldungen absichern, indem der Passwort-Hash in /etc/shadow durch ein Sternchen (*) ersetzt wird. Da dies kein gültiger Hash ist, sollte kein Passwort Zugang gewähren.

Ein 2016 in OpenSSH eingeführter Patch gegen eine Schwachstelle zur Benutzernamen-Aufzählung (CVE-2016-6210) änderte jedoch den Umgang mit Konten ohne nutzbaren Passwort-Hash: Um Rückschlüsse auf gültige Benutzernamen über unterschiedliche Antwortzeiten zu verhindern, führt OpenSSH seither auch dann eine Passwort-Hashberechnung durch, wenn das Konto keinen verwendbaren Hash besitzt – also auch bei mit * gesperrten Konten.

Die crypt()-Funktion der musl-Bibliothek gibt ihrerseits ebenfalls * zurück, wenn das Hashen fehlschlägt, etwa wenn ein übergebenes Passwort die Grenze von 256 Byte überschreitet. Ein Angreifer kann somit ein überlanges Passwort senden; OpenSSH vergleicht dann das zurückgegebene * mit dem gespeicherten * des Kontos – die Anmeldung gelingt. Konten mit gültigem Passwort-Hash lassen sich auf diesem Weg nicht umgehen.

Für eine erfolgreiche Ausnutzung müssen laut Kultekin folgende Bedingungen erfüllt sein:

  • OpenSSH läuft auf einem musl-basierten Linux-System wie Alpine Linux, OpenWrt, Buildroot oder Yocto.
  • Die PAM-Authentifizierung ist deaktiviert, wie es im openssh-server-Paket von Alpine Linux standardmäßig der Fall ist.
  • Die SSH-Passwortanmeldung ist aktiviert.
  • Mindestens ein Konto trägt ein Sternchen (*) als Passwort-Hash.
  • Ein weiteres Konto besitzt einen gültigen Passwort-Hash.

Besonders heikel: Die offiziellen AWS- und Azure-Cloud-Images von Alpine Linux enthalten laut dem Forscher ein betroffenes Standardkonto „alpine" mit passwortlosen doas-Rechten, worüber Angreifer Root-Zugriff erlangen könnten. Systeme mit glibc – etwa Debian, Ubuntu und Fedora – sowie Systeme mit PAM-Authentifizierung sind nicht angreifbar.

Entdeckt hat Kultekin die Schwachstelle nach eigenen Angaben mithilfe von KI-Agenten, die rund 17.600 Authentifizierungstests mit unterschiedlichen OpenSSH-Konfigurationen, fehlerhaften Passwort-Hashes und überlangen Passwörtern durchführten.

Behoben ist das Problem in OpenSSH 10.6p2. Administratoren von Alpine Linux sollten ihre OpenSSH-Pakete mit apk upgrade openssh aktualisieren. Wer das Update nicht sofort einspielen kann, kann die Passwortanmeldung per SSH mit der Einstellung PasswordAuthentication no in der Server-Konfiguration abschalten und den SSH-Dienst neu starten.

Auf Hinweise für eine Ausnutzung lässt sich laut Kultekin prüfen, indem die SSH-Authentifizierungsprotokolle auf passwortbasierte Anmeldungen bei Konten durchgesehen werden, die solche gar nicht zulassen dürften. Zeigen die Protokolle unter Alpine Linux eine erfolgreiche Passwortanmeldung für das Konto „alpine", sollte geprüft werden, ob für dieses Konto die Passwortanmeldung deaktiviert ist. Enthält das Passwortfeld ein *, während die Protokolle eine erfolgreiche Passwortanmeldung ausweisen, kann dies auf eine Ausnutzung der Schwachstelle hindeuten.