Sicherheitsforscher haben eine fast zwanzig Jahre alte Lücke im OpenSSH-Server wiederbelebt und konnten sich mit ihrer Hilfe Root-Rechte verschaffen. Während ihrer Nachforschungen konnten sie einen funktionierenden Exploit für aktuelle SSH-Versionen entwickeln, es gelten jedoch einige Vorbedingungen. Angreifer sollten zudem nicht in Eile sein: Eine erfolgreiche Attacke dauert mehrere Stunden. Als „Regression“ (wörtlich „Rückschritt“) bezeichnen Softwareentwickler unter anderem einen Fehler, der bereits behoben war, durch andere Änderungen am Quellcode aber wieder auftaucht. Einen solchen Regressionsfehler haben Mitarbeiter der Securityfirma Qualys im OpenSSH-Projekt gefunden und ihn folgerichtig „RegreSSHion“ getauft. Bereits im Jahr 2006 tauchte der Programmierschnitzer als CVE-2006-5051 auf – ihn zur Ausführung eigener Befehle auszunutzen, war damals jedoch niemandem geglückt. Zwar hatte das OpenSSH-Team den Fehler damals behoben, im Oktober 2020 jedoch irrtümlich wieder eingebaut. Bei der nun mit der CVE-ID CVE-2024-6387 und gemäß Qualys mit einem CVSS-Wert von 8,1/10, somit also hohem Schweregrad, versehenen Neuauflage handelt es sich um denselben grundlegenden Fehler. Ursache ist eine Wettlaufsituation (Race Condition) rund um den Abbruch nicht erfolgreicher SSH-Verbindungen. Sendet ein Client innerhalb von 120 Sekunden (die Dauer ist konfigurierbar) keine Authentifizierungsdaten, so wird durch den SSH-Server das Unix-Signal SIGALRM gesendet, um etwa die Protokollierung dieses Ereignisses mittels syslog()-Aufrufen auszulösen. Diese sind jedoch nicht für asynchrone Funktionsaufrufe ausgelegt, was Angreifer mit einem hervorragenden Sinn für Timing in die Lage versetzt, eigenen Code einzuschleusen. Die Forscher von Qualys haben diesen Fehler in drei verschiedenen Umgebungen erfolgreich ausnutzen können: In zwei Uralt-Versionen des SSH-Servers von 2006 und in OpenSSH 9.2p1 unter Debian GNU/Linux. Letztere Version ist aus dem Jahr 2024, mithin recht aktuell. Derzeit scheint es so, als seien nur glibc-basierte Systeme erfolgreich angreifbar, insbesondere OpenBSD ist Qualys zufolge immun. Sie mussten dazu nicht nur verschiedene Sicherheitsmechanismen des Betriebssystems und der glibc austricksen, sondern auch viel Geduld mitbringen: Der Exploit funktioniert nur in etwa jedem zehntausendsten Versuch, nach Ablauf des standardmäßig 120 Sekunden langen Timeouts (LoginGraceTime
) und derzeit auch nur auf 32-Bit-Systemen. Lässt der SSH-Server einhundert parallele Verbindungen zu, haben Angreifer nach sechs bis acht Stunden Erfolg. Zwar waren die Qualys-Forscher zunächst nur auf i386-Systemen erfolgreich, ein Exploit für 64-bittige Linuxe ist ihnen zufolge noch in Arbeit. Sobald er fertig ist, dürfte er jedoch noch langsamer sein als sein 32-Bit-Gegenstück – mehr als acht Stunden, aber weniger als eine Woche könnte es dauern, bis Angreifer Root-Rechte erlangen. Die Qualys-Experten haben sowohl eine umfangreiche theoretische Herleitung der Lücke als auch ihre praktischen Versuche, sie auszunutzen, veröffentlicht. Der Sicherheitshinweis gibt einen Einblick in die Komplexität moderner Exploit-Entwicklung und liest sich zudem wie ein IT-Krimi. Den Forschern von Qualys zufolge sind folgende OpenSSH-Versionen verwundbar:
- OpenSSH in Versionen vor 4.4p1, sofern sie nicht nachträglich gegen CVE-2006-5051 oder CVE-2008-4109 abgesichert wurden, sowie
- OpenSSH 8.5p1 bis 9.8; die erste fehlerbereinigte Version ist OpenSSH 9.8p1.
Admins sollten prüfen, ob ihre Linux-Systeme über aktuelle SSH-Versionen verfügen. Sowohl Debian als auch Ubuntu haben neue Pakete auf Lager, Red Hat forscht noch. Ersten Analysen zufolge ist jedoch nur Red Hat Enterprise Linux 9 betroffen, da alle anderen Versionen des Red-Hat-Linux ältere OpenSSH-Versionen mitbringen.