Ubuntu Linux schließt Lücken: Im Handumdrehen zum Systemverwalter
Ein Sicherheitsforscher stolperte über eine Lücken-Kombo, mit der einfache Nutzer einen Account mit Sudo-Rechten anlegen konnten. Ubuntu hat diese nun gefixt.
Der bei GitHub angestellte Sicherheitsforscher Kevin Backhouse hat in Ubuntu-Desktop einen überraschend einfachen Weg gefunden, um ohne entsprechende Rechte neue Konten mit Systemverwalter-Privilegien anzulegen. Dazu nutzte Backhouse die Eigenarten verschiedener Komponenten aus, um an sein Ziel zu kommen. Dafür musste er nichts programmieren.
AccountsService: Abgesicherte Pakete verfügbar
Im Rahmen des Angriffs, den die c't-Redaktion auf einem verwundbaren Testsystem erfolgreich nachstellen konnte, nahm der Forscher den AccountsService ins Visier, der via D-Bus Schnittstellen bereitstellt, um Informationen von Benutzerkonten abzufragen und zu ändern. Backhouse sorgte für einen gezielten Absturz nach der Abmeldung. Durch das daraus resultierende "Fehlen" von AccountsService nimmt der Gnome Display Manager (gdm3) fälschlicherweise an, dass keine User-Accounts vorhanden sind und startet den Einrichtungsassistenten (gnome-initial-setup). Dieser soll eigentlich nur nach einer Neuinstallation erscheinen. Damit kann sich der Nutzer nun einen neuen Account mit Systemverwalterrechten einrichten und anschließend Befehle mit Sudo ausführen.
Backhouse hat die beiden Sicherheitslücken CVE-2020-16126 und CVE-2020-16127, durch deren Verkettung der Angriff möglich, war im Vorfeld an Ubuntu/Canonical und Gnome gemeldet. Diese haben bereits reagiert und korrigierte Versionen veröffentlicht.
Verwundbar sind alle Versionen seit Ubuntu 14.04; Nutzer sollten mit den automatischen Sicherheitsupdates die notwendigen Patches erhalten. Die Details dazu führt Ubuntu in einem Sicherheitsbulletin zur Lücke auf.
Der Angriff im Detail
Ubuntu hat den AccountsService des Freedesktop-Projektes angepasst, damit er aus dem Home-Verzeichnis eine Datei mit Angaben zu den Spracheinstellungen ausliest. Backhouse bog diese Datei mit einem Symlink auf '/dev/zero' um, so dass AccountsService beim Versuch, die Datei zu öffnen, unentwegt Nullen auslas. Das führte zu 100 Prozent Auslastung auf einem CPU-Kern und letztlich zu einem Denial-of-Service.
Der AccountsService ist eigentlich ein Dienst, den normale Nutzer nicht abschießen können. Doch bevor AccountsService die Datei '.pam_environment' aus dem Nutzerverzeichnis öffnet, schraubt der Dienst seine Privilegien temporär herunter. Ironischerweise ist das eigentlich eine Sicherheitsmaßnahme die verhindern soll, dass ein boshafter Nutzer dem Systemdienst etwas anderes unterjubelt. Da dafür einfach die Benutzerkennung des aktuellen Nutzer übernommen wurde, konnte dieser, wie Backhouse herausfand, allerdings auch Signale wie SIGSTOP an den Dienst schicken. Das sollte eigentlich nicht so sein. Durch das endlose Auslesen von '/dev/zero' streckte Backhouse das Zeitfenster, in dem AccountsService durch die heruntergestuften Privilegien angreifbar war.
Empfohlener redaktioneller Inhalt
Mit Ihrer Zustimmmung wird hier ein externes YouTube-Video (Google Ireland Limited) geladen.
Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (Google Ireland Limited) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.
Zweiter Schritt: GDM austricksen
Im nächsten Schritt sorgte Backhouse dafür, dass der Dienst zur richtigen Zeit abgeschossen wird. Dazu suchte er die Prozess-ID von AccountsService heraus, stoppte diesen mit SIGSTOP und legte mit `nohup` die kill-Befehle zum Beenden des Prozess mit einem Countdown in den Hintergrund. Anschließend meldete er sich ab und wartete auf den Ablauf des Timers. Eigentlich hätte der Anmeldebildschirm des Gnome Desktop Managers erscheinen sollen. Der GDM3 ruft aber zunächst mittels AccountsService Informationen zu den Usern ab, um diese im Anmeldedialog aufzulisten. Da dieser nicht mehr reagierte, ging GDM3 von keinen vorhandenen Nutzerkonten aus und startete einfach den Willkommensdialog erneut, über den man sich einen neuen Nutzer mit Systemverwalterprivilegien anlegen konnte.
Backhouse selbst schreibt in seinem detaillierten Artikel zur Lücke: "Es ist ungewöhnlich, dass eine Sicherheitslücke in einem modernen Betriebssystem sich so leicht ausnutzen lässt." Festzuhalten bleibt allerdings, dass die Lücke grundätzlich nur dann ausnutzen, wenn man Zugang zu der grafischen Session eines Desktop-Systems hat. Der Forscher selbst löste beim Testen per Zufall den Willkommensdialog aus und forschte dann weiter, bis er ein Angriffszenario zusammen hatte.
Empfohlener redaktioneller Inhalt
Mit Ihrer Zustimmmung wird hier eine externe Umfrage (Opinary GmbH) geladen.
Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (Opinary GmbH) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.
(ovw)