Im Dienstprogramm
Wenn sudoers über gültige, aber in der Praxis äußerst seltene Regeln verfügt, die die Ausführung eines bestimmten Befehls unter der UID eines anderen Benutzers als Root ermöglichen, kann ein Angreifer, der die Berechtigung zur Ausführung dieses Befehls hat, die festgelegte Einschränkung umgehen und den Befehl mit ausführen Root-Rechte. Um die Einschränkung zu umgehen, versuchen Sie einfach, den in den Einstellungen angegebenen Befehl mit der UID „-1“ oder „4294967295“ auszuführen, was zur Ausführung mit der UID 0 führt.
Wenn es beispielsweise in den Einstellungen eine Regel gibt, die jedem Benutzer das Recht gibt, das Programm /usr/bin/id unter einer beliebigen UID auszuführen:
myhost ALL = (ALL, !root) /usr/bin/id
oder eine Option, die die Ausführung nur für einen bestimmten Benutzer bob ermöglicht:
myhost bob = (ALL, !root) /usr/bin/id
Der Benutzer kann „sudo -u '#-1' id“ ausführen und das Dienstprogramm /usr/bin/id wird trotz des ausdrücklichen Verbots in den Einstellungen als Root gestartet. Das Problem wird dadurch verursacht, dass die Sonderwerte „-1“ oder „4294967295“ übersehen werden, die nicht zu einer Änderung der UID führen, aber da sudo selbst bereits als Root läuft, ohne die UID zu ändern, gilt dies auch für den Zielbefehl mit Root-Rechten gestartet.
In SUSE- und openSUSE-Distributionen besteht ohne Angabe von „NOPASSWD“ in der Regel eine Sicherheitslücke
myhost ALL = (ALL, !root) NOPASSWD: /usr/bin/id
Problem in der Version behoben
Source: opennet.ru