In dem Dienstprogramm , das verwendet wird, um die AusfĂŒhrung von Befehlen im Namen anderer Benutzer zu organisieren, (), die es ermöglicht, Befehle mit Root-Rechten auszufĂŒhren, wenn in den sudoers-Einstellungen Regeln vorhanden sind, in denen in der Benutzer-ID-PrĂŒfung nach dem erlaubenden SchlĂŒsselwort âALLâ ein explizites Verbot zur AusfĂŒhrung mit Root-Rechten folgt (â⊠(ALL, !root) âŠâ). In den Standardkonfigurationen der Distributionen tritt die Schwachstelle nicht auf.
Wenn in den sudoers zulĂ€ssige, aber in der Praxis Ă€uĂerst selten vorkommende Regeln vorhanden sind, die die AusfĂŒhrung eines bestimmten Befehls unter der UID eines anderen Benutzers als root erlauben, kann ein Angreifer, der die Berechtigung zur AusfĂŒhrung dieses Befehls hat, das festgelegte Limit umgehen und den Befehl mit Root-Rechten ausfĂŒhren. Um das Limit zu umgehen, reicht es aus, zu versuchen, den im Einstellungen angegebenen Befehl mit der UID â-1â oder â4294967295â auszufĂŒhren, was zu seiner AusfĂŒhrung mit der UID 0 fĂŒhren wird.
Zum Beispiel, wenn in den Einstellungen eine Regel vorhanden ist, die jedem Benutzer das Recht gibt, das Programm /usr/bin/id unter jeder UID auszufĂŒhren:
myhost ALL = (ALL, !root) /usr/bin/id
oder eine Variante, die die AusfĂŒhrung nur fĂŒr den bestimmten Benutzer bob erlaubt:
myhost bob = (ALL, !root) /usr/bin/id
Der Benutzer kann âsudo -u â#-1â idâ ausfĂŒhren, und das Dienstprogramm /usr/bin/id wird mit Root-Rechten gestartet, trotz des expliziten Verbots in den Einstellungen. Das Problem entsteht durch das Ăbersehen der Sonderwerte â-1â oder â4294967295â, die nicht zu einem UID-Wechsel fĂŒhren, aber da sudo bereits unter root ausgefĂŒhrt wird, wird auch der Zielbefehl ohne UID-Wechsel mit Root-Rechten ausgefĂŒhrt.
In den Distributionen von SUSE und openSUSE ist die Schwachstelle ohne Angabe von âNOPASSWDâ in der Regel , da in den sudoers standardmĂ€Ăig der Modus âDefaults targetpwâ aktiviert ist, bei dem die UID anhand der Passwortdatenbank ĂŒberprĂŒft wird und eine Eingabeaufforderung fĂŒr das Passwort des Zielbenutzers angezeigt wird. FĂŒr solche Systeme kann der Angriff nur unter bestehenden Regeln wie folgt durchgefĂŒhrt werden:
myhost ALL = (ALL, !root) NOPASSWD: /usr/bin/id
Das Problem wurde in der Version behoben. Der Fix ist auch in Form eines verfĂŒgbar. In den Distributionen ist die Schwachstelle bereits behoben in , , , , und . Zum Zeitpunkt der Erstellung des Berichts bleibt das Problem in und unbehebt. Die Schwachstelle wurde von Sicherheitsexperten des Unternehmens Apple entdeckt.
Quelle: opennet.ru
