Root-Sicherheitsanfälligkeit in sudo, die Linux Mint und Elementary OS betrifft

In der Dienstprogramm sudo, das zur Ausführung von Befehlen im Namen anderer Benutzer verwendet wird, wurde eine Schwachstelle (CVE-2019-18634), die es ermöglicht, die Privilegien im System auf den Benutzer root zu erhöhen, festgestellt. Das Problem tritt seit der Ausgabe von sudo 1.7.1 auf und lediglich bei Verwendung der Option „pwfeedback“ in der Datei /etc/sudoers, die standardmäßig deaktiviert, jedoch in einigen Distributionen wie Linux Mint und Elementary OS aktiviert ist. Das Problem wurde in der Version sudo 1.8.31, die vor wenigen Stunden veröffentlicht wurde, behoben. In den betroffenen Distributionen bleibt die Schwachstelle jedoch bislang ungetilgt.

Die Option „pwfeedback“ zeigt nach jedem eingegebenen Zeichen beim Eingeben des Passworts das Zeichen „*“ an. Aufgrund einer Fehlers in der Implementierung der Funktion getln(), die in der Datei tgetpass.c definiert ist, kann ein zu großer Passwort-String, der über den Standard-Eingang (stdin) übergeben wird, unter bestimmten Bedingungen nicht in den zugewiesenen Buffer passen und andere Daten im Stack überschreiben. Das Überlaufen tritt während der Ausführung von sudo mit Root-Rechten auf.

Das Kernproblem besteht darin, dass bei der Eingabe des Sonderzeichens ^U (Zeilenbereinigung) und bei einem Schreibfehler der dazugehörige Code, der für das Löschen der ausgegebenen Zeichen «*» verantwortlich ist, die Informationen über die verfügbare Größe des Puffers zurücksetzt, jedoch den aktuellen Zeiger innerhalb des Puffers nicht auf den ursprünglichen Wert zurücksetzt. Ein weiterer Faktor, der die Ausnutzung begünstigt, ist das Fehlen einer automatischen Deaktivierung des «pwfeedback»-Modus, wenn Daten nicht über ein Terminal, sondern über einen Eingabestrom empfangen werden (dieser Mangel ermöglicht die Schaffung von Bedingungen, die zu einem Schreibfehler führen, beispielsweise auf Systemen mit unidirektionalen unbenannten Kanälen ein Fehler tritt auf, wenn versucht wird, über das Ende des Lese kanals zu schreiben).

Da ein Angreifer die vollständige Kontrolle über das Überschreiben von Daten im Stack hat, ist es einfach, einen Exploit zu erstellen, der die Privilegien bis zum Benutzer root erhöht. Dieses Problem kann von jedem Benutzer ausgenutzt werden, unabhängig von den Rechten zur Verwendung von sudo und den spezifischen Benutzereinstellungen in sudoers. Um das Problem zu beheben, sollte sichergestellt werden, dass die Einstellung „pwfeedback“ in /etc/sudoers nicht vorhanden ist und gegebenenfalls deaktiviert wird („Defaults !pwfeedback“). Zur Überprüfung der Problematik kann folgender Code ausgeführt werden:

$ perl -e 'print(('A' x 100 . '\x{00}') x 50)' | sudo -S id
Passwort: Segmentierungsfehler

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster