Ranljivost v systemd, ki bi vam lahko omogočila stopnjevanje vaših privilegijev

V upravitelju sistema systemd ugotovljeno ranljivost (CVE-2020-1712), ki vam potencialno omogoča izvajanje vaše kode s povišanimi privilegiji s pošiljanjem posebej oblikovane zahteve prek vodila DBus. Težava je odpravljena v preizkusni izdaji systemd 245-rc1 (popravki, ki rešijo težavo: 1, 2, 3). Ranljivost je bila odpravljena v distribucijah Ubuntu, Fedora, RHEL (pojavlja se v RHEL 8, vendar ne vpliva na RHEL 7), CentOS и SUSE/openSUSE, a v času pisanja novica ostaja nepopravljena v Debian и Arch Linux.

Уязвимость вызвана обращением к уже освобождённой области памяти (use-after-free), возникающем при асинхронном выполнении запросов к Polkit во время обработки DBus-сообщений. Некоторые DBus-интерфейсы используют кэш для хранения объектов на короткое время и очищают элементы кэша как только шина DBus освободится для обработки других запросов. Если обработчик DBus-метода использует bus_verify_polkit_async(), ему возможно потребуется ожидать завершения действия в Polkit. После готовности Polkit обработчик вызывается повторно и обращается к уже ранее распределённым в памяти данным. Если запрос к Polkit выполняется слишком долго, то элементы в кэше успевают очистится до того, как обработчик DBus-метода будет вызван второй раз.

Med storitvami, ki omogočajo izkoriščanje ranljivosti, je omenjen systemd-machined, ki zagotavlja DBus API org.freedesktop.machine1.Image.Clone, kar vodi do začasnega shranjevanja podatkov v predpomnilniku in asinhronega dostopa do Polkita. Vmesnik
org.freedesktop.machine1.Image.Clone je na voljo vsem neprivilegiranim uporabnikom sistema, kar lahko zruši sistemske storitve ali potencialno povzroči, da se koda izvaja kot root (prototip izkoriščanja še ni bil prikazan). Koda, ki je omogočila izkoriščanje ranljivosti, je bila dodano v systemd-machined v različici 2015 systemd 220 (RHEL 7.x uporablja systemd 219).

Vir: opennet.ru

Dodaj komentar