Eine Schwachstelle in OpenSSH ermöglicht die Ausführung von Code mit Root-Rechten auf Servern mit Glibc.

Das Unternehmen Qualys hat eine kritische Sicherheitsanfälligkeit (CVE-2024-6387) in OpenSSH entdeckt, die es ermöglicht, Code mit Root-Rechten ohne Authentifizierung aus der Ferne auszuführen. Diese Schwachstelle, die den Codenamen regreSSHion trägt, tritt in der Standardkonfiguration ab Version OpenSSH 8.5 auf Systemen mit der Standardbibliothek Glibc auf.

Die Möglichkeit eines Angriffs wurde auf einem 32-Bit-System mit Glibc und aktivierter ASLR-Schutz (Adressraumrandomisierung) demonstriert. Für einen erfolgreichen Angriff in Laborbedingungen waren 6-8 Stunden erforderlich, in denen kontinuierlich Verbindungen mit maximaler in der Konfiguration von sshd zulässiger Intensität hergestellt wurden. Server Die Durchführung des Angriffs wird erleichtert und benötigt weniger Zeit auf Systemen ohne ASLR oder in Distributionen, die eine modifizierte OpenSSH-Version verwenden, bei der die erneute Randomisierung von ASLR für jede Verbindung deaktiviert ist. Ein funktionierender Exploit-Prototyp wird nicht öffentlich veröffentlicht, bis die Schwachstelle breitflächig behoben ist. Es gibt jedoch ausreichend detaillierte Beschreibungen der Schwachstelle, die es ermöglichen, dass externe Exploits nur eine Frage der Zeit sind.

Es ist nicht ausgeschlossen, dass Angriffe auch auf 64-Bit-Systeme möglich sind, jedoch ist bislang kein funktionierender Exploit für solche Systeme bereit. Es wird vermutet, dass die Durchführung eines Angriffs auf 64-Bit-Systeme erheblich mehr Zeit in Anspruch nehmen wird, jedoch nicht länger als eine Woche. OpenSSH in OpenBSD ist von diesem Problem nicht betroffen, da in diesem System seit 2001 ein Schutzmechanismus vorhanden ist, der solche Klassifizierungen von Angriffen blockiert. In anderen Systemen, die auf Standardbibliotheken basieren, die von Glibc abweichen, könnte theoretisch eine Anpassung der Methode zur Durchführung eines Angriffs möglich sein (dies wurde von Qualys bislang nicht untersucht).

Die Schwachstelle wurde im heute veröffentlichten Update von OpenSSH 9.8 (Patch) behoben. Die Veröffentlichung von Paketupdates in den Distributionen kann auf den Seiten von: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, ROSA, Gentoo, ALT Linux, Arch und FreeBSD verfolgt werden. Als Umgehung für die Blockierung der Schwachstelle kann in der sshd_config der Parameter „LoginGraceTime=0“ gesetzt werden; die Deaktivierung des Timeouts erleichtert jedoch die Initiierung eines Denial-of-Service, wenn eine große Anzahl von Verbindungen die durch den Parameter MaxStartups festgelegten Grenzen überschreitet.
Ein Anzeichen für einen Angriff sind zahlreiche Einträge im Protokoll mit der Meldung „Timeout before authentication“.

Die Schwachstelle entstand durch eine Regression, die Teil des Releases von OpenSSH 8.5 war und zu einem Race Condition im Signalverarbeitungscode von sshd führte. Die Regression führte dazu, dass der Schutz vor der alten Schwachstelle CVE-2006-5051, die bis zur Version OpenSSH 4.4 (2006) theoretischer Natur war, nicht mehr wirksam war.
Im Verlauf der Entwicklung von OpenSSH 8.5 wurde versehentlich der Block „#ifdef DO_LOG_SAFE_IN_SIGHAND“ aus der Funktion sigdie() entfernt, die direkt aus dem SIGALRM-Handler aufgerufen wird.

Der SIGALRM-Handler wird im sshd asynchron aufgerufen, wenn der Client sich innerhalb der durch den Verbindungszeitlimit (LoginGraceTime, standardmäßig 120 Sekunden) festgelegten Zeit nicht authentifiziert hat. Der Angriff basiert darauf, dass der Signal-Handler unsichere Funktionen wie syslog() bei asynchroner Signalverarbeitung aufruft. Die syslog()-Funktion in Glibc ist nicht für den Einsatz in asynchron ausgeführten Signal-Handlers gedacht, da sie Funktionen wie malloc() und free() aufruft. Das Auslösen des SIGALRM-Signals, das die Ausführung bestimmter Codes im sshd unterbricht, kann zu einem Zustand führen, der die Ausführung beeinträchtigt. Das Ziel des Exploits besteht darin, Bedingungen zu schaffen, die das Unterbrechen des benötigten Codes zum richtigen Zeitpunkt seiner Ausführung ermöglichen. Diese Schwachstelle betrifft nicht OpenBSD, da anstelle von syslog() aus dem SIGALRM-Handler die Funktion syslog_r() aufgerufen wird, die speziell für die asynchrone Ausführung entwickelt wurde.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster