Уразлівасць у firejail, якая дазваляе атрымаць root-доступ у сістэме

Ва ўтыліце для ізаляванага выканання прыкладанняў Firejail выяўленая ўразлівасць (CVE-2022-31214), якая дазваляе лакальнаму карыстачу атрымаць правы root у асноўнай сістэме. У адкрытым доступе маецца працоўны эксплоіт, правераны ў актуальных выпусках openSUSE, Debian, Arch, Gentoo і Fedora з усталяванай утылітай firejail. Праблема ўхіленая ў выпуску firejail 0.9.70. У якасці абыходнага шляху абароны можна выставіць у наладах (/etc/firejail/firejail.config) параметры "join no" і "force-nonewprivs yes".

Firejail выкарыстоўвае для ізаляцыі механізм прастор імёнаў (namespaces), AppArmor і фільтраванне сістэмных выклікаў (seccomp-bpf) у Linux, але для налады ізаляванага запуску патрабуе падвышаных прывілеяў, якія атрымлівае праз прывязку да ўтыліты сцяга suid root або запуск пры дапамозе sudo. Уразлівасць выклікана памылкай у логіцы працы опцыі «—join= », прызначанай для падлучэння да ўжо працавальнага ізаляванага асяроддзя (аналаг каманды login для sandbox-асяроддзі) з вызначэннем асяроддзя па працавальнага ў ім ідэнтыфікатару працэсу. На этапе да скіду прывілеяў firejail вызначае прывілеі паказанага працэсу і ўжывае іх да новага працэсу, які падключаецца да асяроддзя пры дапамозе опцыі "-join".

Перад падключэннем ажыццяўляецца праверка, ці запушчаны ўказаны працэс у асяроддзі firejail. Дадзеная праверка ацэньвае наяўнасць файла /run/firejail/mnt/join. Для эксплуатацыі ўразлівасці атакавалы можа сімуляваць фіктыўнае ня ізаляванае асяроддзе firejail, выкарыстаючы прастору кропак мантавання (mount namespace), пасля чаго падлучыцца да яго пры дапамозе опцыі «—join». Калі ў наладах не актываваны рэжым забароны атрымання дадатковых прывілеяў у новых працэсах (prctl NO_NEW_PRIVS), firejail падлучыць карыстальніка да фіктыўнага асяроддзя і паспрабуе прымяніць наладкі прасторы імёнаў ідэнтыфікатараў карыстальнікаў (user namespace) працэсу init (PID 1).

У выніку падлучаны праз «firejail —join» працэс апынецца ў зыходнай для карыстача прасторы імёнаў ідэнтыфікатараў карыстачоў з нязменнымі прывілеямі, але ў іншай прасторы кропак мантавання, цалкам кантраляваным атакавалым. У тым ліку атакавалы можа выконваць setuid-root праграмы ў створанай ім прасторы кропак мантавання, што дазваляе, напрыклад, змяніць налады /etc/sudoers ці параметры PAM у сваёй файлавай іерархіі і атрымаць магчымасць выканання каманд з правамі root пры дапамозе ўтыліт sudo ці su.

Крыніца: opennet.ru

Дадаць каментар