Systemd-coredump pažeidžiamumas, leidžiantis nustatyti suid programų atminties turinį

Pažeidžiamumas (CVE-2022-4415) buvo nustatytas komponente systemd-coredump, kuris apdoroja pagrindinius failus, sukurtus po procesų gedimo, todėl neprivilegijuotas vietinis vartotojas gali nustatyti privilegijuotų procesų, veikiančių su suid root vėliava, atminties turinį. Numatytoji konfigūracijos problema buvo patvirtinta openSUSE, Arch, Debian, Fedora ir SLES platinimuose.

Pažeidžiamumą sukelia netinkamas fs.suid_dumpable sysctl parametro apdorojimas sistemoje systemd-coredump, kuris, nustačius numatytąją reikšmę 2, leidžia generuoti pagrindinius iškeltus procesus su suid vėliava. Suprantama, kad branduolio parašyti pagrindiniai suid procesų failai turi turėti nustatytas prieigos teises, kad leistų skaityti tik pagrindiniam vartotojui. Programa systemd-coredump, kurią branduolys iškviečia, kad išsaugotų pagrindinius failus, saugo pagrindinį failą su šakniniu ID, bet papildomai suteikia ACL pagrįstą skaitymo prieigą prie pagrindinių failų pagal savininko, kuris iš pradžių pradėjo procesą, ID. .

Ši funkcija leidžia atsisiųsti pagrindinius failus neatsižvelgiant į tai, kad programa gali pakeisti vartotojo ID ir paleisti su padidintomis teisėmis. Ataka susiveda į tai, kad vartotojas gali paleisti suid programą ir nusiųsti jai SIGSEGV signalą, o tada įkelti pagrindinio failo turinį, į kurį įtraukta proceso atminties dalis nenormalaus nutraukimo metu.

Pavyzdžiui, vartotojas gali paleisti „/usr/bin/su“ ir kitame terminale nutraukti jo vykdymą su komanda „kill -s SIGSEGV `pidof su“, po kurios systemd-coredump išsaugos pagrindinį failą /var. /lib/systemd/ katalogo coredump, nustatydami jam ACL, leidžiantį skaityti dabartiniam vartotojui. Kadangi suid programa „su“ nuskaito /etc/shadow turinį į atmintį, užpuolikas gali gauti prieigą prie informacijos apie visų sistemos vartotojų slaptažodžių maišą. Sudo programa nėra jautri atakoms, nes ji draudžia generuoti pagrindinius failus per ulimit.

Sistemos kūrėjų teigimu, pažeidžiamumas atsiranda pradedant nuo systemd 247 leidimo (2020 m. lapkričio mėn.), tačiau, anot problemą identifikavusio tyrėjo, paveikiamas ir 246 leidimas. Pažeidžiamumas atsiranda, jei systemd yra sukompiliuotas su libacl biblioteka (pagal numatytuosius nustatymus visi populiarūs platinimai). Pataisa šiuo metu pasiekiama kaip pataisa. Galite sekti distribucijos pataisas šiuose puslapiuose: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Kaip saugumo sprendimą galite nustatyti sysctl fs.suid_dumpable į 0, o tai neleidžia siųsti išklotinių į systemd-coredump tvarkyklę.

Šaltinis: opennet.ru

Добавить комментарий