Seit einigen Jahren erhält jede größere Sicherheitslücke einen Namen und ein Logo. So auch die neue alte Sicherheitslücke in OpenSSH, die RegreSSHion getauft wurde. Der Name deutet an, dass es diese Lücke schon mal gab, und so ist es auch.
Alte Lücke neu eingeführt
Die Sicherheitsforscher bei Qualys haben erfolgreich eine Lücke im OpenSSH-Server sshd ausgenutzt, die bereits 2006 als CVE-2006-5051 katalogisiert und geschlossen wurde, ohne damals ausgenutzt zu werden. Die Entwickler bei OpenSSH bauten die jetzt als CVE-2024-6387 katalogisierte Lücke 2020 unabsichtlich wieder ein. Sie erlaubt es einem Angreifer, ein glibc-basiertes System aus der Ferne zu übernehmen. Erschwerend dabei ist, dass der Angreifer automatisch Rootrechte erhält. Abgemildert wird dies wiederum dadurch, dass die Ausnutzung relativ aufwendig ist und Geduld sowie ein besonderes Timing erfordert, wobei laut Heise nur einer von rund 10.000 Angriffsversuchen gelingt.
Unsicheres Signal
Der Fehler beruht auf einer Race Condition: Wenn ein SSH-Client sich nicht innerhalb von dem in der sshd_config
konfigurierbaren Timeout LoginGraceTime von üblicherweise 60 oder 120 Sekunden authentifiziert, wird der SIGALRM-Handler von sshd asynchron aufgerufen. Dieser Signal-Handler ruft jedoch verschiedene Funktionen auf, die nicht asynchron-signal-sicher sind, unter anderem auch syslog(), wo solche Vorfälle aufgezeichnet werden.
Betroffene Versionen
OpenSSH-Versionen vor 4.4p1 (2006) sind verwundbar, sofern sie nicht gepatched wurden. Die Versionen von 4.4p1 bis einschließlich 8.5 sind nicht anfällig. Die Schwachstelle tritt in den Versionen 8.5p1 bis einschließlich 9.8 erneut auf (2020) und wurde jetzt in OpenSSH 9.8p1 erneut geschlossen. Einige Distributionen wie Arch, Debian und Ubuntu bieten die gepatchte Version bereits an. Wer welche Version verwendet, lässt sich auf Repology verfolgen.
Bildnachweis: Qualys