剣 KENSAI
Hoch CVE-2024-6387 Juli 2024 · 9 Min. Lesezeit

CVE-2024-6387: regreSSHion — OpenSSH-RCE nach 18 Jahren

Eine Race Condition im Signal-Handler von OpenSSH ermöglicht es nicht authentifizierten Angreifern, beliebigen Code mit Root-Rechten auf Linux-Servern auszuführen, die glibc verwenden. Die Schwachstelle erhielt den Namen „regreSSHion“ — eine Regression von CVE-2006-5051, die 2020 versehentlich erneut eingeführt wurde. Betroffen sind etwa 14 Millionen über das Internet erreichbare SSH-Server. CVSS 8.1 HOCH.


8.1
HOCH
AttributWert
CVE-IDCVE-2024-6387
CVSS-VektorAV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
CWECWE-364: Race Condition im Signal-Handler
Veröffentlicht1. Juli 2024
AusnutzungTheoretisch — bislang keine bestätigte RCE in freier Wildbahn

Was ist CVE-2024-6387?

CVE-2024-6387 ist eine Race Condition im Signal-Handler des OpenSSH-Servers (sshd). Wenn sich ein Client nicht innerhalb der LoginGraceTime (Standardwert: 120 Sekunden) authentifiziert, ruft sshd SIGALRM auf, um die Verbindung zu beenden. Der Signal-Handler ruft Funktionen auf, die nicht asynchron-signalsicher sind — insbesondere syslog() — und dadurch den Heap-Zustand beschädigen können, wenn sie gleichzeitig mit anderen Operationen ausgeführt werden.

Die Qualys-Forscher, die die Schwachstelle entdeckten, nannten sie „regreSSHion“, weil ein identischer Fehler (CVE-2006-5051) bereits 2006 behoben worden war, die Korrektur jedoch mit der Veröffentlichung von OpenSSH 8.5p1 im Oktober 2020 unbeabsichtigt entfernt wurde — die Schwachstelle bestand somit fast vier Jahre lang unbemerkt erneut.

⚠ Das Ausmaß der Gefährdung

Daten von Shodan und Censys zeigten zum Zeitpunkt der Offenlegung etwa 14 Millionen über das Internet erreichbare OpenSSH-Server mit anfälligen Versionen. Obwohl die CVSS-Einstufung wegen der Anforderung AC:H (hohe Komplexität) „Hoch“ und nicht „Kritisch“ lautete, machte die enorme Anzahl exponierter Systeme diese Schwachstelle zu einer der folgenschwersten des Jahres 2024. Jeder Linux-Server ist ein potenzielles Ziel.

Betroffene Versionen

OpenSSH-VersionsbereichStatus
< 4.4p1Anfällig (ursprüngliche CVE-2006-5051)
4.4p1 – 8.4p1Gepatcht (Korrektur für CVE-2006-5051 vorhanden)
8.5p1 – 9.7p1ANFÄLLIG (Regression erneut eingeführt)
9.8p1+Gepatcht

glibc-Anforderung: Der PoC von Qualys nutzte die malloc-Implementierung von glibc aus. Der sshd von OpenBSD ist nicht anfällig. Alpine Linux (das musl libc verwendet) und macOS sind gegenüber der demonstrierten Ausnutzungstechnik nicht anfällig, obwohl die Race Condition weiterhin besteht.

Erklärung der Race Condition

Signal-Handler in C-Programmen dürfen ausschließlich „asynchron-signalsichere“ Funktionen aufrufen — eine kleine Teilmenge der libc-Funktionen, die sicher aus einem Signal-Handler heraus aufgerufen werden können, da sie keinen gemeinsam genutzten Zustand verwenden. Die Funktion syslog() ist nicht asynchron-signalsicher, weil sie intern malloc verwendet.

# Der problematische Codepfad (vereinfacht):
# Wenn LoginGraceTime abläuft:
SIGALRM → grace_alarm_handler() → syslog() → malloc() intern
                                              ↕ RACE CONDITION
           Haupt-Thread von sshd ruft ebenfalls malloc() / free() auf

# Wenn sich beide malloc-Operationen überschneiden:
# → Heap-Beschädigung
# → Bei genügend Versuchen: kontrolliertes Heap-Layout
# → Ausführung von Remote-Code mit Root-Rechten

Für eine erfolgreiche Ausnutzung muss die Race Condition zuverlässig gewonnen werden, was Tausende Verbindungsversuche über mehrere Minuten erfordert. Dadurch ist die automatisierte Ausnutzung im Internet etwas langsamer als bei typischen „Fire-and-Forget“-Schwachstellen — doch technisch versierte Angreifer mit dauerhaftem Zugriff auf ein Ziel haben ausreichend Zeit.

Schwierigkeit der Ausnutzung

Qualys demonstrierte eine zuverlässige Ausnutzung auf 32-Bit-Systemen (x86). Auf 64-Bit-Systemen erhöht ASLR die Schwierigkeit erheblich. Die Forscher weisen darauf hin, dass eine Ausnutzung mit etwa 10.000 Versuchen über einen Zeitraum von 6–8 Stunden theoretisch auf 64-Bit-Systemen möglich ist, veröffentlichten jedoch keinen funktionsfähigen PoC für x86_64.

Die Hürde kann jedoch durch Folgendes gesenkt werden:

Erkennung

# OpenSSH-Version prüfen
ssh -V
sshd -V

# Installierte Paketversion prüfen (Debian/Ubuntu)
dpkg -l openssh-server | grep openssh

# Installierte Paketversion prüfen (RHEL/CentOS)
rpm -qa | grep openssh-server

# Auf Brute-Force-Versuche prüfen, die auf eine Ausnutzung von regreSSHion hindeuten
# (sehr hohe Verbindungsrate von einer einzelnen IP, alle innerhalb der Karenzzeit fehlgeschlagen)
grep "Connection closed by" /var/log/auth.log |
  awk '{print $9}' | sort | uniq -c | sort -rn | head -20

# Auf eine hohe Rate fehlgeschlagener Anmeldungen prüfen
grep "Failed\|Invalid" /var/log/auth.log |
  awk '{print 1}' | sort | uniq -c | sort -rn | head -10

Schutzmaßnahmen

  1. OpenSSH auf 9.8p1+ aktualisieren: Alle großen Distributionen veröffentlichten innerhalb weniger Tage nach der Offenlegung Patches. apt update && apt upgrade openssh-server oder ein entsprechender Befehl.
  2. LoginGraceTime auf 0 setzen: Durch die Einstellung LoginGraceTime 0 in /etc/ssh/sshd_config wird verhindert, dass der SIGALRM-Handler aufgerufen wird. Dadurch wird die Race Condition beseitigt, allerdings entfällt auch die Karenzzeit:
    echo "LoginGraceTime 0" >> /etc/ssh/sshd_config
    systemctl reload sshd
  3. SSH-Verbindungen begrenzen: fail2ban oder eine Ratenbegrenzung mit iptables konfigurieren, um die Tausenden Verbindungen zu verhindern, die für eine Ausnutzung erforderlich sind
  4. SSH-Zugriff nach IP beschränken: sshd mithilfe von AllowUsers, ListenAddress oder Firewall-Regeln auf bekannte Verwaltungs-IP-Bereiche beschränken
  5. Nur SSH-Schlüssel verwenden: Passwortauthentifizierung deaktivieren — die schlüsselbasierte Authentifizierung bietet einen starken Filter vor der eigentlichen Authentifizierung
  6. Verlegung von SSH auf einen nicht standardmäßigen Port erwägen: Reduziert das Rauschen opportunistischer Scanner, ist jedoch keine Sicherheitskontrolle

Erkennungsfunktionen von KENSAI

Wie viele Ihrer SSH-Server verwenden eine anfällige OpenSSH-Version?

KENSAI inventarisiert jeden SSH-Server in Ihrer Umgebung — intern wie extern — und kennzeichnet für regreSSHion anfällige Versionen sofort. Für die Erfassung der externen Exposition sind keine Agenten erforderlich.

Ihre SSH-Exposition prüfen →

Ähnliche Artikel

INTERPOL zerschlägt 45.000 bösartige IPs Gefälschte VS-Code-Warnungen auf GitHub verbreiten Malware, pro-iranische Gruppe greift FBI-Direktor an Aktuelles zu Sicherheitsvorschriften im März 2026: NIS2