Vundebleco en systemd kiu eble povus permesi al vi pligrandigi viajn privilegiojn

En la systemd sistemmanaĝero identigita vundebleco (CVE-2020-1712), kiu eble ebligas al vi ekzekuti vian kodon kun altigitaj privilegioj sendante speciale desegnitan peton per la buso DBus. La problemo estas riparita en la testa eldono systemd 245-rc1 (Diakiloj, kiuj solvas la problemon: 1, 2, 3). La vundebleco estis riparita en distribuoj ubuntu, Fedora, RELO (aperas en RHEL 8, sed ne influas RHEL 7), CentOS и SUSE/malfermuSUSE, sed dum la skribado la novaĵo restas nekorektita en Debian и Arch Linukso.

La vundebleco estas kaŭzita de aliro al jam liberigita memorareo (uzo-post-libera), kiu okazas kiam nesinkrone efektivigas petojn al Polkit dum prilaborado de DBus-mesaĝoj. Kelkaj DBus-interfacoj uzas kaŝmemoron por stoki objektojn por mallonga tempo kaj flui la kaŝmemoro-enskribojn tuj kiam la DBus-buso estas libera prilabori aliajn petojn. Se DBus-metoda prizorganto uzas bus_verify_polkit_async(), eble ĝi devas atendi ke la Polkit ago finiĝos. Post kiam Polkit estas preta, la prizorganto denove estas vokita kaj aliras la datumojn jam distribuitajn en memoro. Se peto al Polkit daŭras tro longe, la eroj en la kaŝmemoro estos forigitaj antaŭ ol la DBus-metoda prizorganto estas vokita duan fojon.

Inter la servoj, kiuj permesas ekspluaton de la vundebleco, oni rimarkas systemd-machined, kiu provizas la DBus API org.freedesktop.machine1.Image.Clone, kondukante al provizora stokado de datumoj en la kaŝmemoro kaj nesinkrona aliro al Polkit. Interfaco
org.freedesktop.machine1.Image.Clone estas disponebla por ĉiuj senprivilegiaj uzantoj de la sistemo, kiuj povas kraŝi sistemajn servojn aŭ eble kaŭzi kodon esti ekzekutita kiel radiko (la ekspluata prototipo ankoraŭ ne estis pruvita). La kodo kiu permesis ekspluaton de la vundebleco estis aldonis en systemd-maŝinita en 2015 versio systemd 220 (RHEL 7.x uzas systemd 219).

fonto: opennet.ru

Aldoni komenton