Ranjivost u systemd-u koja bi vam potencijalno mogla omogućiti da povećate svoje privilegije

U upravitelju sustava systemd identificiran ranjivost (CVE-2020-1712), što vam potencijalno omogućuje da izvršite svoj kod s povišenim privilegijama slanjem posebno dizajniranog zahtjeva preko DBus sabirnice. Problem je riješen u testnom izdanju systemd 245-rc1 (zakrpe koje rješavaju problem: 1, 2, 3). Ranjivost je popravljena u distribucijama Ubuntu, Fedora, RHEL (pojavljuje se u RHEL 8, ali ne utječe na RHEL 7), CentOS и SUSE/openSUSE, ali u trenutku pisanja vijest ostaje neispravljena u Debian и Arch Linux.

Ranjivost je uzrokovana pristupom već oslobođenom memorijskom području (use-after-free), što se događa prilikom asinkronog izvršavanja zahtjeva prema Polkitu tijekom obrade DBus poruka. Neka DBus sučelja koriste predmemoriju za pohranjivanje objekata na kratko vrijeme i ispiranje unosa u predmemoriju čim se DBus sabirnica oslobodi za obradu drugih zahtjeva. Ako rukovatelj DBus metode koristi bus_verify_polkit_async(), možda će trebati pričekati da se završi Polkit akcija. Nakon što je Polkit spreman, rukovatelj se ponovno poziva i pristupa podacima koji su već raspoređeni u memoriji. Ako zahtjev prema Polkitu traje predugo, stavke u predmemoriji bit će izbrisane prije nego što se rukovatelj metode DBus pozove drugi put.

Među servisima koji dopuštaju iskorištavanje ranjivosti ističe se systemd-machined, koji pruža DBus API org.freedesktop.machine1.Image.Clone, što dovodi do privremenog skladištenja podataka u predmemoriju i asinkroni pristup Polkitu. Sučelje
org.freedesktop.machine1.Image.Clone dostupan je svim neprivilegiranim korisnicima sustava, što može srušiti systemd servise ili potencijalno uzrokovati izvršavanje koda kao root (eksploatacijski prototip još nije demonstriran). Kod koji je dopuštao iskorištavanje ranjivosti bio je dodano u systemd-machined u verziji 2015 sistemd 220 (RHEL 7.x koristi systemd 219).

Izvor: opennet.ru

Dodajte komentar