Sistēmas ievainojamība, kas varētu ļaut jums palielināt savas privilēģijas

Systemd sistēmas pārvaldniekā identificēts ievainojamība (CVE-2020-1712), kas potenciāli ļauj izpildīt savu kodu ar paaugstinātām privilēģijām, nosūtot īpaši izstrādātu pieprasījumu pa DBus kopni. Problēma ir novērsta testa laidienā systemd 245-rc1 (ielāpi, kas atrisina problēmu: 1, 2, 3). Izplatījumos ievainojamība ir novērsta Ubuntu, Fedora, RHEL (parādās RHEL 8, bet neietekmē RHEL 7), CentOS и SUSE/openSUSE, bet rakstīšanas brīdī ziņas paliek nelabotas Debian и Arch Linux.

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

Starp pakalpojumiem, kas ļauj izmantot ievainojamību, tiek atzīmēts systemd-machined, kas nodrošina DBus API org.freedesktop.machine1.Image.Clone, kas nodrošina pagaidu datu glabāšanu kešatmiņā un asinhronu piekļuvi Polkit. Interfeiss
org.freedesktop.machine1.Image.Clone ir pieejams visiem sistēmas lietotājiem, kuri nav priviliģēti un var izraisīt sistēmas pakalpojumu avāriju vai izraisīt koda izpildi kā root (izmantošanas prototips vēl nav demonstrēts). Kods, kas ļāva izmantot ievainojamību, bija piebilda systemd-machined 2015. gada versijā systemd 220 (RHEL 7.x izmanto systemd 219).

Avots: opennet.ru

Pievieno komentāru