Sistemos pažeidžiamumas, dėl kurio galite padidinti savo teises

Sistemos sistemos tvarkyklėje nustatyta pažeidžiamumas (CVE-2020-1712), kuris potencialiai leidžia vykdyti savo kodą su padidintomis privilegijomis, siunčiant specialiai sukurtą užklausą per DBus magistralę. Problema išspręsta bandomojoje versijoje systemd 245-rc1 (pleistrai, kurie išsprendžia problemą: 1, 2, 3). Pažeidžiamumas buvo ištaisytas paskirstymuose ubuntu, Minkšta fetrinė skrybėlė, RHEL (rodoma RHEL 8, bet neturi įtakos RHEL 7), Centos и SUSE / openSUSE, tačiau rašant naujieną lieka nepataisyta debian и Arch Linux.

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

Tarp paslaugų, leidžiančių išnaudoti pažeidžiamumą, pažymima systemd-machined, kuri suteikia DBus API org.freedesktop.machine1.Image.Clone, todėl laikinai saugomi duomenys talpykloje ir asinchroninė prieiga prie „Polkit“. Sąsaja
org.freedesktop.machine1.Image.Clone yra prieinama visiems neprivilegijuotiems sistemos vartotojams, kurie gali sugriauti sistemos paslaugas arba gali sukelti kodo vykdymą kaip root (išnaudojimo prototipas dar nepademonstruotas). Kodas, leidęs išnaudoti pažeidžiamumą, buvo pridėta „Systemd-machined“ 2015 m. versijoje 220 (RHEL 7.x naudoja systemd 219).

Šaltinis: opennet.ru

Добавить комментарий