Ang kahinaan sa systemd na posibleng magpapahintulot sa iyo na palakihin ang iyong mga pribilehiyo

Sa systemd system manager nakilala kahinaan (CVE-2020-1712), na posibleng nagpapahintulot sa iyo na isagawa ang iyong code na may mataas na mga pribilehiyo sa pamamagitan ng pagpapadala ng espesyal na idinisenyong kahilingan sa DBus bus. Ang problema ay naayos sa paglabas ng pagsubok systemd 245-rc1 (mga patch na lumulutas sa problema: 1, 2, 3). Ang kahinaan ay naayos na sa mga pamamahagi Ubuntu, Fedora, RHEL (lumalabas sa RHEL 8, ngunit hindi nakakaapekto sa RHEL 7), CentOS и SUSE/openSUSE, ngunit sa oras ng pagsulat ang balita ay nananatiling hindi naitama sa Debian и Arch Linux.

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

Kabilang sa mga serbisyong nagbibigay-daan sa pagsasamantala sa kahinaan, binanggit ang systemd-machined, na nagbibigay ng DBus API org.freedesktop.machine1.Image.Clone, na humahantong sa pansamantalang pag-iimbak ng data sa cache at asynchronous na pag-access sa Polkit. Interface
Ang org.freedesktop.machine1.Image.Clone ay magagamit sa lahat ng hindi karapat-dapat na mga user ng system, na maaaring mag-crash ng mga serbisyo ng system o posibleng maging sanhi ng code na maisakatuparan bilang root (ang exploit na prototype ay hindi pa naipapakita). Ang code na nagpapahintulot sa pagsasamantala sa kahinaan ay dagdag pa sa systemd-machined noong 2015 na bersyon systemd 220 (RHEL 7.x ay gumagamit ng systemd 219).

Pinagmulan: opennet.ru

Magdagdag ng komento