Isang kahinaan sa systemd-coredump na nagpapahintulot sa isa na matukoy ang mga nilalaman ng memorya ng mga suid program

Ang isang kahinaan (CVE-2022-4415) ay natukoy sa bahagi ng systemd-coredump, na nagpoproseso ng mga pangunahing file na nabuo pagkatapos ng pag-crash ng mga proseso, na nagpapahintulot sa isang walang pribilehiyong lokal na user na matukoy ang mga nilalaman ng memorya ng mga privileged na proseso na tumatakbo gamit ang suid root flag. Ang default na isyu sa pagsasaayos ay nakumpirma sa openSUSE, Arch, Debian, Fedora at mga pamamahagi ng SLES.

Ang kahinaan ay sanhi ng kakulangan ng tamang pagproseso ng fs.suid_dumpable sysctl parameter sa systemd-coredump, na, kapag nakatakda sa default na halaga na 2, ay nagbibigay-daan sa pagbuo ng mga core dump para sa mga prosesong may suid flag. Nauunawaan na ang mga pangunahing file ng mga proseso ng suid na isinulat ng kernel ay dapat may mga karapatan sa pag-access na nakatakda upang payagan ang pagbabasa lamang ng root user. Ang systemd-coredump utility, na tinatawag ng kernel para mag-save ng mga core file, ay nag-iimbak ng core file sa ilalim ng root ID, ngunit nagbibigay din ng ACL-based read access sa mga core file batay sa ID ng may-ari na orihinal na naglunsad ng proseso. .

Ang tampok na ito ay nagbibigay-daan sa iyo upang mag-download ng mga pangunahing file nang hindi isinasaalang-alang ang katotohanan na ang program ay maaaring baguhin ang user ID at tumakbo nang may mataas na mga pribilehiyo. Ang pag-atake ay nagmumula sa katotohanan na ang isang user ay maaaring maglunsad ng suid application at magpadala ito ng signal ng SIGSEGV, at pagkatapos ay i-load ang mga nilalaman ng isang pangunahing file, na kinabibilangan ng isang memory slice ng proseso sa panahon ng hindi normal na pagwawakas.

Halimbawa, maaaring patakbuhin ng isang user ang "/usr/bin/su" at sa isa pang terminal ay wakasan ang pagpapatupad nito gamit ang command na "kill -s SIGSEGV `pidof su`", pagkatapos ay ise-save ng systemd-coredump ang core file sa /var /lib/systemd/ directory coredump, nagtatakda ng ACL para dito na nagbibigay-daan sa pagbabasa ng kasalukuyang user. Dahil binabasa ng suid utility na 'su' ang mga nilalaman ng /etc/shadow sa memorya, ang isang attacker ay maaaring makakuha ng access sa impormasyon tungkol sa mga password hashes ng lahat ng user sa system. Ang sudo utility ay hindi madaling atakehin, dahil ipinagbabawal nito ang pagbuo ng mga pangunahing file sa pamamagitan ng ulimit.

Ayon sa mga systemd developer, lumalabas ang vulnerability simula sa systemd release 247 (Nobyembre 2020), ngunit ayon sa researcher na natukoy ang problema, apektado din ang release 246. Lumalabas ang vulnerability kung ang systemd ay pinagsama-sama sa libacl library (bilang default sa lahat ng mga sikat na pamamahagi). Ang pag-aayos ay kasalukuyang magagamit bilang isang patch. Maaari mong subaybayan ang mga pag-aayos sa mga pamamahagi sa mga sumusunod na pahina: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Bilang solusyon sa seguridad, maaari mong itakda ang sysctl fs.suid_dumpable sa 0, na hindi pinapagana ang pagpapadala ng mga dump sa systemd-coredump handler.

Pinagmulan: opennet.ru

Magdagdag ng komento