Login
Login-Name Passwort


 
Newsletter
Werbung

Mi, 25. Januar 2017, 09:27

Software::Security

Lücke in Systemd 228 als Root-Exploit erkannt

Eine bereits im Januar 2016 geschlossene Lücke in Systemd macht nachträglich von sich reden, da sie in ihrer Tragweite unterschätzt wurde.

Eine mit Version 229 im Januar 2016 geschlossene Lücke in Systemd 228 wurde in ihrer Schwere von den Systemd-Entwicklern anscheinend unterschätzt. Suse-Entwickler Sebastian Krahmer entdeckte jetzt, dass die vermeintliche lokale Denial-of-Service-Schwachstelle (DoS) in Wirklichkeit ein lokaler Root-Exploit ist und hat ihn unter CVE-2016-10156 öffentlich gemacht. Im Common Vulnerability Scoring System (CVSS) erhielt die Schwachstelle den Schweregrad 7.2 auf einer Skala von 1 bis 10. Krahmer moniert, dass die Systemd-Entwickler für die Lücke nicht selbst eine CVE-Nummer beantragt hatten, selbst wenn sie überzeugt waren, eine lokale DoS-Lücke vor sich zu haben, sondern die Schwachstelle stillschweigend schlossen, ohne die Distributionen darüber zu informieren.

Die Lücke erlaubt es einem lokalen Angreifer, per touch() Dateien mit den Rechten 07777 zu erzeugen, bei denen das SUID-Bit gesetzt ist und die somit für jedermann les- und ausführbar sind. Somit kann eine vorbereitete Anwendung oder ein lokaler Nutzer auf sehr einfache Weise Root-Rechte erhalten.

Der Fehler findet sich in /src/basic/fs-util.c der Ende 2015 ausgelieferten Version 228 und wurde vermutlich durch die Zeile »util-lib: use MODE_INVALID as invalid value for mode_t everywhere« eingeführt und später durch »mode_t is unsigned, so MODE_INVALID < 0 can never be true« revidiert.

Die meisten Distributionen, die Systemd einsetzen, haben bereits neuere Ausgaben der Systemverwaltungssoftware als die betroffene Version. Zumindest Opensuse verwendet allerdings noch Systemd 228. Hier ist eine bereinigte Ausgabe der betroffenen Version in Arbeit. Obwohl Krahmer glaubt, dass lediglich Systemd 228 betroffen sei, rät er Distributoren, die eingesetzte Version auf eine verletzliche touch_*()-Funktion zu überprüfen.

Werbung
Pro-Linux
Traut euch!
Neue Nachrichten
Werbung