Mit dem Kommando sudo kann ein Anwender unter Linux Befehle mit den Rechten anderer ausführen. Zumeist kommt das zum Einsatz, um etwa mit "sudo apt upgrade" systemweit Updates einzuspielen, was root-Rechte erfordert. Auf den meisten Linux-Desktop-Systemen dürfen die Hauptnutzer dies nach der Eingabe ihres eigenen Passworts.

Ein Apple-Entwickler hat jetzt einen Fehler entdeckt, der es einem Nutzer erlaubt, Befehle mit root-Rechten auszuführen, auch wenn er das eigentlich gar nicht darf. Das klingt zunächst einmal spektakulär; es erfordert jedoch eine eher unübliche Konfiguration, die in der Realität eher selten anzutreffen ist.

Erlaubt man es einem Benutzer, dass er Befehle im Namen aller anderen Nutzer ausführt, nimmt davon aber den root-Account explizit aus, dann schlägt dieser Bug zu. Das sieht dann in der sudo-Konfiguration beispielsweise so aus:

bob myhost = (ALL, !root) /usr/bin/id

bob darf das Utility id unter fremden Benutzerkennungen ausführen. Das entscheidende ist das Schlüsselwort ALL, das für beliebige Benutzerkennungen steht. Steht dies vor dem einschränkenden !root, dann kann bob die Einschränkung umgehen, indem er als Benutzer-ID -1 oder "4294967295" eingibt. So funktioniert etwa

sudo -u#-1 id

Dabei interpretiert sudo das -1 als ID 0, was dem root-Account zugeordnet ist. Dieser Fehler (CVE-2019-14287) wurde von einem Apple-Sicherheitsforscher entdeckt und gemeldet. Die Version sudo 1.8.28 beseitigt ihn, erklären die Entwickler in ihrem Security-Advisory Potential bypass of Runas user restrictions. Linux-Distributionen dürften bereits aktualisierte Pakete bereitstellen. Auch wenn es nur wenige Systeme konkret betreffen dürfte, sollte man dieses Sicherheits-Update zügig einspielen. (ju)