Zraniteľnosť v systemd, ktorá by vám potenciálne mohla umožniť eskalovať vaše privilégiá

V správcovi systému systemd identifikované zraniteľnosť (CVE-2020 1712,), čo vám potenciálne umožňuje spustiť váš kód so zvýšenými oprávneniami odoslaním špeciálne navrhnutej požiadavky cez zbernicu DBus. Problém je vyriešený v testovacej verzii systemd 245-rc1 (záplaty, ktoré riešia problém: 1, 2, 3). Zraniteľnosť bola v distribúciách opravená ubuntu, Fedora, RHEL (objaví sa v RHEL 8, ale neovplyvňuje RHEL 7), CentOS и SUSE/openSUSE, ale v čase písania správy zostávajú neopravené v debian и Arch Linux.

Zraniteľnosť je spôsobená prístupom do už uvoľnenej oblasti pamäte (use-after-free), ku ktorému dochádza pri asynchrónnom vykonávaní požiadaviek na Polkit počas spracovania správ DBus. Niektoré rozhrania DBus používajú vyrovnávaciu pamäť na ukladanie objektov na krátky čas a vyprázdnia položky vyrovnávacej pamäte hneď, ako je zbernica DBus voľná na spracovanie iných požiadaviek. Ak obsluha metódy DBus používa bus_verify_polkit_async(), možno bude musieť počkať na dokončenie akcie Polkit. Keď je Polkit pripravený, handler je zavolaný znova a pristupuje k dátam, ktoré sú už distribuované v pamäti. Ak požiadavka na Polkit trvá príliš dlho, položky vo vyrovnávacej pamäti sa vymažú pred druhým volaním obsluhy metódy DBus.

Medzi službami, ktoré umožňujú zneužitie zraniteľnosti, je systemd-machined, ktorý poskytuje DBus API org.freedesktop.machine1.Image.Clone, čo vedie k dočasnému ukladaniu údajov do vyrovnávacej pamäte a asynchrónnemu prístupu k Polkitu. Rozhranie
org.freedesktop.machine1.Image.Clone je k dispozícii pre všetkých neprivilegovaných používateľov systému, čo môže spôsobiť zlyhanie systémových služieb alebo potenciálne spôsobiť spustenie kódu ako root (prototyp exploitu ešte nebol demonštrovaný). Kód, ktorý umožňoval zneužitie tejto zraniteľnosti, bol dodal v systemd-machined vo verzii 2015 systémový 220 (RHEL 7.x používa systemd 219).

Zdroj: opennet.ru

Pridať komentár