Ranjivost u systemd-coredump, koja omogućuje određivanje sadržaja memorije suid programa

Ranjivost (CVE-2022-4415) identificirana je u komponenti systemd-coredump, koja obrađuje datoteke jezgre generirane nakon pada procesa, dopuštajući neprivilegiranom lokalnom korisniku da odredi sadržaj memorije privilegiranih procesa koji se izvode s oznakom suid root. Problem sa zadanom konfiguracijom potvrđen je na distribucijama openSUSE, Arch, Debian, Fedora i SLES.

Ranjivost je uzrokovana nedostatkom ispravne obrade parametra fs.suid_dumpable sysctl u systemd-coredump, koji, kada je postavljen na zadanu vrijednost 2, dopušta generiranje ispisa jezgre za procese sa suid oznakom. Podrazumijeva se da jezgrene datoteke suid procesa koje je napisao kernel moraju imati prava pristupa postavljena tako da dopuštaju čitanje samo root korisniku. Uslužni program systemd-coredump, kojeg kernel poziva za spremanje jezgrenih datoteka, pohranjuje jezgrenu datoteku pod korijenskim ID-om, ali dodatno pruža pristup za čitanje temeljen na ACL-u na temelju ID-a vlasnika koji je izvorno pokrenuo proces .

Ova značajka vam omogućuje preuzimanje osnovnih datoteka bez obzira na činjenicu da program može promijeniti korisnički ID i raditi s povišenim privilegijama. Napad se svodi na činjenicu da korisnik može pokrenuti suid aplikaciju i poslati joj SIGSEGV signal, a zatim učitati sadržaj jezgrene datoteke, koja uključuje memorijski isječak procesa tijekom abnormalnog prekida.

Na primjer, korisnik može pokrenuti “/usr/bin/su” i na drugom terminalu prekinuti njegovo izvršenje naredbom “kill -s SIGSEGV `pidof su`”, nakon čega će systemd-coredump spremiti jezgrenu datoteku u /var /lib/systemd/ direktorij coredump, postavljajući ACL za njega koji dopušta čitanje trenutnom korisniku. Budući da uslužni program suid 'su' čita sadržaj /etc/shadow u memoriju, napadač može dobiti pristup informacijama o hashovima zaporki svih korisnika u sustavu. Uslužni program sudo nije osjetljiv na napade jer zabranjuje generiranje jezgrenih datoteka putem ulimit-a.

Prema programerima systemda, ranjivost se pojavljuje počevši od izdanja systemd 247 (studeni 2020.), ali prema istraživaču koji je identificirao problem, pogođeno je i izdanje 246. Ranjivost se pojavljuje ako je systemd kompajliran s bibliotekom libacl (prema zadanim postavkama u sve popularne distribucije). Popravak je trenutno dostupan kao zakrpa. Popravke u distribucijama možete pratiti na sljedećim stranicama: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Kao sigurnosno rješenje, možete postaviti sysctl fs.suid_dumpable na 0, što onemogućuje slanje dumpova rukovatelju systemd-coredump.

Izvor: opennet.ru

Dodajte komentar