Ang kahinaan sa firejail na nagpapahintulot sa root access sa system

May natukoy na kahinaan (CVE-2022-31214) sa Firejail application isolation utility na nagbibigay-daan sa isang lokal na user na makakuha ng mga pribilehiyo sa ugat sa host system. Mayroong isang gumaganang pagsasamantala na magagamit sa pampublikong domain, na sinubukan sa mga kasalukuyang release ng openSUSE, Debian, Arch, Gentoo at Fedora na may naka-install na firejail utility. Ang isyu ay naayos sa firejail 0.9.70 release. Bilang solusyon para sa proteksyon, maaari mong itakda ang mga parameter na β€œjoin no” at β€œforce-nonewprivs yes” sa mga setting (/etc/firejail/firejail.config).

Gumagamit ang Firejail ng mga namespace, AppArmor, at system call filtering (seccomp-bpf) sa Linux para sa paghihiwalay, ngunit nangangailangan ng mataas na mga pribilehiyo upang mag-set up ng nakahiwalay na pagpapatupad, na nakukuha nito sa pamamagitan ng pag-binding sa utility flag suid root o pagpapatakbo gamit ang sudo. Ang kahinaan ay sanhi ng isang error sa lohika ng opsyong "--join=". ", na nilayon para sa pagkonekta sa isang tumatakbo nang nakahiwalay na kapaligiran (katulad ng utos sa pag-login para sa isang sandbox na kapaligiran) na may kahulugan ng kapaligiran sa pamamagitan ng pagtukoy ng proseso na tumatakbo dito. Sa yugto ng pre-privilege reset, tinutukoy ng firejail ang mga pribilehiyo ng tinukoy na proseso at inilalapat ang mga ito sa bagong proseso na nakakonekta sa kapaligiran gamit ang opsyong "-join".

Bago kumonekta, sinusuri nito kung ang tinukoy na proseso ay tumatakbo sa kapaligiran ng firejail. Sinusuri ng pagsusuring ito ang pagkakaroon ng file /run/firejail/mnt/join. Upang samantalahin ang kahinaan, maaaring gayahin ng isang attacker ang isang kathang-isip at hindi nakahiwalay na firejail environment gamit ang mount namespace, at pagkatapos ay kumonekta dito gamit ang opsyong "--join". Kung hindi pinagana ng mga setting ang mode ng pagbabawal sa pagkuha ng mga karagdagang pribilehiyo sa mga bagong proseso (prctl NO_NEW_PRIVS), ikokonekta ng firejail ang user sa isang dummy na kapaligiran at susubukang ilapat ang mga setting ng user namespace ng proseso ng init (PID 1).

Bilang resulta, ang prosesong konektado sa pamamagitan ng "firejail -join" ay mapupunta sa orihinal na user ID namespace ng user na may hindi nabagong mga pribilehiyo, ngunit sa ibang mount point space, ganap na kontrolado ng attacker. Ang isang attacker ay maaari ding magsagawa ng mga setuid-root program sa mount point space na kanyang nilikha, na nagbibigay-daan, halimbawa, na baguhin ang /etc/sudoers settings o PAM parameters sa kanyang file hierarchy at makapagsagawa ng mga command na may root rights gamit ang sudo o su utilities.

Pinagmulan: opennet.ru

Magdagdag ng komento