Ва ўтыліце
Пры наяўнасці ў sudoers дапушчальных, але вельмі рэдка сустракаемых на практыку кіраваў, дазваляльных выкананне вызначанай каманды пад UID-ідэнтыфікатарам любога карыстача, акрамя root, атакавалы, мелы паўнамоцтвы выканання дадзенай каманды, можа абыйсці ўсталяванае абмежаванне і выканаць каманду з правамі root. Для абыходу абмежавання дастаткова паспрабаваць выканаць паказаную ў наладах каманду з UID «-1» або «4294967295», што прывядзе да яе выканання з UID 0.
Напрыклад, калі ў наладах маецца правіла, якое дае любому карыстачу права на выкананне праграмы /usr/bin/id пад любым UID:
myhost ALL = (ALL, !root) /usr/bin/id
або варыянт, які дазваляе выкананне толькі канкрэтнаму карыстальніку bob:
myhost bob = (ALL, !root) /usr/bin/id
Карыстальнік можа выканаць "sudo -u '#-1' id" і ўтыліта /usr/bin/id будзе запушчана з правамі root, нягледзячы на відавочную забарону ў наладах. Праблема выкліканая недаглядам з увагі спецзначэнняў "-1" ці "4294967295", якія не прыводзяць да змены UID, але бо сам sudo ужо выконваецца пад root, то без змены UID і мэтавая каманда таксама запускаецца з правамі root.
У дыстрыбутывах SUSE і openSUSE без указання ў правіле "NOPASSWD" уразлівасць
myhost ALL = (ALL, !root) NOPASSWD: /usr/bin/id
Праблема ўхіленая ў выпуску
Крыніца: opennet.ru