Das Unternehmen Qualys vier In OpenBSD gibt es eine Schwachstelle, die es ermöglicht, sich ohne Authentifizierung mit bestimmten Netzwerkdiensten zu verbinden, während drei weitere die Privilegien im System erhöhen können. Im Qualys-Bericht wird die schnelle Reaktion der OpenBSD-Entwickler hervorgehoben – alle Probleme wurden in und innerhalb von 40 Stunden nach der privaten Benachrichtigung behoben.
Die aus der Ferne ausnutzbare Schwachstelle wird durch einen Fehler bei der Organisation des Aufrufs des Authentifizierungs-Handlers in der libc-Bibliothek verursacht, die
das Programm /usr/libexec/auth/login_style mit Argumenten in der Befehlszeile aufruft. Auch beim Aufruf von login_style mit dem optionalen Parameter „-s service“ ist es möglich, den Protokollnamen zu übergeben. Wenn der Benutzername mit dem Zeichen „-“ beginnt, wird dieser Name als Option beim Start von login_style interpretiert. Folglich wird, wenn bei der Authentifizierung der Benutzername „-schallenge“ oder „-schallenge:passwd“ angegeben wird, der Aufruf von login_style als Anfrage zur Verwendung des Handlers .
Das Problem besteht darin, dass das S/Key-Protokoll in login_style nur formell unterstützt wird, während es in der Praxis ignoriert wird, was zu einer Bestätigung einer erfolgreichen Authentifizierung führt. Daher kann ein Angreifer, der sich als Benutzer „-schallenge“ ausgibt, die Authentifizierung umgehen und ohne Angabe von Passwort oder Schlüsseln zugreifen. Potenziell sind alle Netzwerkdienste betroffen, die Standardaufrufe von libc zur Durchführung der Authentifizierung verwenden. Beispielsweise wurde die Möglichkeit, die Authentifizierung zu umgehen, in smtpd (AUTH PLAIN), ldapd und radiusd bestätigt.
Bei sshd zeigt sich die Schwachstelle nicht, da es eine zusätzliche Schutzmaßnahme zur Überprüfung der Anwesenheit des Benutzers im System gibt. Dennoch kann sshd verwendet werden, um die Anfälligkeit des Systems zu überprüfen – beim Aufruf mit dem Benutzernamen „-sresponse:passwd“ hängt die Verbindung, da sshd auf die Rückgabe von Aufrufparametern (challenge) von login_passwd wartet, während login_passwd auf die Übertragung der fehlenden Parameter wartet (der Name „-sresponse“ wird als Option interpretiert). Potenziell kann ein lokaler Angreifer versuchen, die Authentifizierung im Programm su zu umgehen, aber die Übertragung des Namens „-sresponse“ führt zum Absturz des Prozesses, da ein Nullzeiger bei der Ausführung der Funktion getpwnam_r(„-schallenge“, …) zurückgegeben wird.
Weitere Sicherheitsanfälligkeiten:
- CVE-2019-19520 — lokales Erhöhen von Rechten durch Manipulation mit dem xlock-Dienstprogramm, das mit dem sgid-Flag geliefert wird und die Gruppe auf „auth“ ändert. Im Code von xlock wird die Umkehrung der Pfade zu den Bibliotheken nur bei einer Änderung der Benutzerkennung (setuid) verboten, was es einem Angreifer ermöglicht, die Umgebungsvariable „LIBGL_DRIVERS_PATH“ zu ändern und seine eigene Shared Library zu laden, deren Code nach der Erhöhung der Rechte auf die Gruppe „auth“ ausgeführt wird.
- CVE-2019-19522 — ermöglicht es einem lokalen Benutzer, der der Gruppe „auth“ angehört, Code mit Root-Rechten auszuführen, wenn die Authentifizierung im System über S/Key oder YubiKey (standardmäßig inaktiv) erfolgt. 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. Zum Beispiel kann ein Angreifer eine neue Datei /etc/skey/root hinzufügen, um Einmalcodes zur Authentifizierung als Root-Benutzer über S/Key zu generieren.
- CVE-2019-19519 — Möglichkeit der Erhöhung von Ressourcenlimits durch Manipulation mit dem su-Dienstprogramm. Wenn die Option „-L“ angegeben wird, was eine zyklische Wiederholung der Authentifizierungsversuche im Falle eines Fehlschlags impliziert, wird die Benutzerklasse nur einmal festgelegt und bei den folgenden Versuchen nicht zurückgesetzt. Ein Angreifer kann „su -l -L“ ausführen und beim ersten Versuch einen fremden Benutzernamen mit einer anderen Benutzerklasse eingeben, aber beim zweiten Versuch erfolgreich als sich selbst authentifizieren. In dieser Situation werden dem Benutzer die Limits zugewiesen, die zur Benutzerklasse gehören, die beim ersten Versuch angegeben wurde (z. B. maximale Anzahl von Prozessen oder Speichergröße für den Prozess). Die Methode funktioniert nur für die Übernahme von Limits von nicht privilegierten Benutzern, da für den Root-Benutzer die Zugehörigkeit zur Gruppe wheel erforderlich ist.
Zusätzlich kann vermerkt werden in OpenBSD eine neue Methode zur Überprüfung der Zulässigkeit von Systemaufrufen, die die Ausnutzung von Schwachstellen zusätzlich erschwert. Die Methode erlaubt die Ausführung von Systemaufrufen nur, wenn sie aus zuvor registrierten Speicherbereichen aufgerufen werden. Zum Markieren der Speicherbereiche neuer Systemaufruf .
Quelle: opennet.ru
