Qualys vier in OpenBSD, von denen eine den Remote-Zugriff ohne Authentifizierung auf einige Netzwerkdienste ermöglicht, während die anderen drei die Privilegien im System erhöhen. Im Bericht von Qualys wurde die schnelle Reaktion der OpenBSD-Entwickler hervorgehoben — alle Probleme wurden in und innerhalb von 40 Stunden nach der privaten Benachrichtigung behoben.
Die remote ausnutzbare Schwachstelle wird durch einen Fehler bei der Organisation des Authentifizierungs-Handleraufrufs in der libc-Bibliothek verursacht, der
das Programm /usr/libexec/auth/login_style mit Argumentübergabe in der Befehlszeile aufruft. Insbesondere beim Aufruf von login_style mit dem optionalen Parameter «-s service» wird die Angabe des Protokollnamens ermöglicht. Wenn beim Benutzernamen das Zeichen «-» an den Anfang gesetzt wird, wird dieser als Option beim Start von login_style interpretiert. Folglich wird bei der Angabe des Benutzernamens «-schallenge» oder «-schallenge:passwd» login_style die Anfrage als Aufforderung zur Verwendung des Handlers .
Das Problem ist, dass das S/Key-Protokoll im login_style nur formal unterstützt wird und tatsächlich bei der erfolgreichen Authentifizierung ignoriert wird. Dadurch kann ein Angreifer, der sich als Benutzer "-schallenge" ausgibt, die Authentifizierung umgehen und Zugang erhalten, ohne ein Passwort oder Schlüssel anzugeben. Alle Netzwerkdienste, die Standardaufrufe von libc für die Authentifizierung nutzen, sind potenziell gefährdet. Zum Beispiel wurde die Möglichkeit, die Authentifizierung zu umgehen, in smtpd (AUTH PLAIN), ldapd und radiusd bestätigt.
In sshd zeigt sich die Schwachstelle nicht, da es einen zusätzlichen Schutz gibt, der die Anwesenheit des Benutzers im System überprüft. Dennoch kann sshd verwendet werden, um die Anfälligkeit des Systems zu überprüfen – wenn man den Benutzernamen „-sresponse:passwd“ eingibt, hängt die Verbindung, da sshd auf die Rückgabe der Aufrufparameter (Challenge) durch login_passwd wartet, während login_passwd auf die Übertragung der fehlenden Parameter wartet (der Name „-sresponse“ wird als Option betrachtet). Ein potenzieller lokaler Angreifer könnte versuchen, die Authentifizierung in der su-Utility zu umgehen, doch die Übertragung des Namens „-sresponse“ führt zum Absturz des Prozesses aufgrund des Rückgebs eines Nullzeigers bei der Ausführung der Funktion getpwnam_r(„-schallenge“, …).
Weitere Schwachstellen:
- CVE-2019-19520 – Lokale Privilegienerhöhung durch Manipulation mit dem xlock-Tool, das mit dem sgid-Flag geliefert wird und die Gruppe auf "auth" ändert. Im xlock-Code wird die Überschreibung der Pfade zu Bibliotheken nur bei einer Änderung der Benutzer-ID (setuid) untersagt, was es dem Angreifer ermöglicht, die Umgebungsvariable "LIBGL_DRIVERS_PATH" zu ändern und seine eigene Shared Library zu laden, deren Code nach der Privilegienerhöhung zur Gruppe "auth" ausgeführt wird.
- CVE-2019-19522 – Ermöglicht es einem lokalen Benutzer, der zur Gruppe "auth" gehört, Code mit Root-Rechten auszuführen, wenn die Authentifizierung über S/Key oder YubiKey (standardmäßig inaktiv) aktiviert ist. Der Zugang zur Gruppe "auth", der durch die Ausnutzung der oben genannten Schwachstelle in xlock erlangt werden kann, ermöglicht das Schreiben von Dateien in die Verzeichnisse /etc/skey und /var/db/yubikey. Beispielsweise kann ein Angreifer eine neue Datei /etc/skey/root hinzufügen, um Einmalpasswörter für die Authentifizierung als Root-Benutzer über S/Key zu generieren.
- CVE-2019-19519 — eine Möglichkeit zur Erhöhung der Ressourcenlimits durch Manipulation mit dem Tool su. Wenn die Option „-L“ verwendet wird, die eine zyklische Wiederholung der Authentifizierungsversuche im Falle eines Fehlers impliziert, wird die Benutzerklasse nur einmal festgelegt und bei folgenden Versuchen nicht zurückgesetzt. Ein Angreifer kann „su -l -L“ ausführen und beim ersten Versuch einen fremden Benutzernamen mit einer anderen Kontoklasse eingeben, aber beim zweiten Versuch erfolgreich die Authentifizierung unter seinem eigenen Namen durchführen. In dieser Situation werden dem Benutzer Limits gesetzt, die der Benutzerklasse entsprechen, die beim ersten Versuch angegeben wurde (zum Beispiel die maximalen Prozesse oder die Größe des Speichers für den Prozess). Die Methode funktioniert nur für das Ausleihen von Limits von nicht privilegierten Benutzern, da für den Benutzer root die Mitgliedschaft in der Gruppe wheel erforderlich ist.
speziellen Distribution In OpenBSD gibt es eine neue Methode zur Überprüfung der Zulässigkeit von Systemaufrufen, die die Ausnutzung von Schwachstellen zusätzlich erschwert. Diese Methode erlaubt die Ausführung von Systemaufrufen nur, wenn sie aus zuvor registrierten Speicherbereichen aufgerufen werden. Zur Markierung der Speicherbereiche neuer Systemaufruf .
Quelle: opennet.ru
