Ranljivost v systemd-coredump, ki omogoča določanje vsebine pomnilnika suid programov

Ranljivost (CVE-2022-4415) je bila ugotovljena v komponenti systemd-coredump, ki obdeluje jedrne datoteke, ustvarjene po zrušitvi procesov, kar omogoča neprivilegiranemu lokalnemu uporabniku, da določi vsebino pomnilnika privilegiranih procesov, ki se izvajajo z zastavico suid root. Težava s privzeto konfiguracijo je bila potrjena v distribucijah openSUSE, Arch, Debian, Fedora in SLES.

Ranljivost je posledica pomanjkanja pravilne obdelave parametra fs.suid_dumpable sysctl v systemd-coredump, ki, ko je nastavljen na privzeto vrednost 2, omogoča ustvarjanje jedrnih izpisov za procese z zastavico suid. Razume se, da morajo imeti jedrne datoteke procesov suid, ki jih piše jedro, nastavljene pravice dostopa, ki dovoljujejo branje samo uporabniku root. Pripomoček systemd-coredump, ki ga kliče jedro za shranjevanje jedrnih datotek, shrani jedrno datoteko pod korenskim ID-jem, vendar poleg tega zagotavlja bralni dostop do jedrnih datotek na podlagi ACL na podlagi ID-ja lastnika, ki je prvotno zagnal proces. .

Ta funkcija vam omogoča prenos osnovnih datotek ne glede na to, da lahko program spremeni ID uporabnika in deluje s povišanimi privilegiji. Napad se zmanjša na dejstvo, da lahko uporabnik zažene aplikacijo suid in ji pošlje signal SIGSEGV, nato pa naloži vsebino jedrne datoteke, ki vključuje pomnilniško rezino procesa med nenormalno prekinitvijo.

Uporabnik lahko na primer zažene »/usr/bin/su« in v drugem terminalu prekine njegovo izvajanje z ukazom »kill -s SIGSEGV `pidof su`«, po katerem bo systemd-coredump shranil jedrno datoteko v /var /lib/systemd/ imenik coredump, nastavitev ACL zanj, ki omogoča branje trenutnemu uporabniku. Ker pripomoček suid 'su' prebere vsebino /etc/shadow v pomnilnik, lahko napadalec pridobi dostop do informacij o zgoščenih vrednostih gesel vseh uporabnikov v sistemu. Pripomoček sudo ni dovzeten za napade, saj prepoveduje ustvarjanje jedrnih datotek prek ulimit.

Po navedbah razvijalcev systemd se ranljivost pojavlja od izdaje systemd 247 (november 2020), po mnenju raziskovalca, ki je odkril težavo, pa je prizadeta tudi izdaja 246. Ranljivost se pojavi, če je systemd preveden s knjižnico libacl (privzeto v vse priljubljene distribucije). Popravek je trenutno na voljo kot popravek. Popravke v distribucijah lahko spremljate na naslednjih straneh: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Gentoo, Arch. Kot varnostno rešitev lahko nastavite sysctl fs.suid_dumpable na 0, kar onemogoči pošiljanje izpisov v rutino za obravnavo systemd-coredump.

Vir: opennet.ru

Dodaj komentar