Systemd:n ​​haavoittuvuus, joka voi mahdollisesti antaa sinun laajentaa oikeuksiasi

Systemd System Managerissa tunnistettu haavoittuvuus (CVE-2020-1712), jonka avulla voit mahdollisesti suorittaa koodisi korotetuilla oikeuksilla lähettämällä erityisesti suunnitellun pyynnön DBus-väylän kautta. Ongelma on korjattu testijulkaisussa systemd 245-rc1 (korjaustiedostot, jotka ratkaisevat ongelman: 1, 2, 3). Haavoittuvuus on korjattu jakeluissa Ubuntu, Fedora, RHEL (näkyy RHEL 8:ssa, mutta ei vaikuta RHEL 7:ään), CentOS и SUSE / openSUSE, mutta uutinen on kirjoitushetkellä korjaamaton Debian и Arch Linux.

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

Haavoittuvuuden hyödyntämisen mahdollistavien palveluiden joukossa mainitaan systemd-machined, joka tarjoaa DBus-sovellusliittymän org.freedesktop.machine1.Image.Clone, mikä johtaa väliaikaiseen tietojen tallentamiseen välimuistiin ja asynkroniseen Polkitiin. Käyttöliittymä
org.freedesktop.machine1.Image.Clone on kaikkien järjestelmän etuoikeutettujen käyttäjien käytettävissä, jotka voivat kaataa järjestelmäpalvelut tai mahdollisesti aiheuttaa koodin suorittamisen pääkäyttäjänä (hyödyntämisprototyyppiä ei ole vielä esitelty). Koodi, joka mahdollisti haavoittuvuuden hyödyntämisen, oli lisätty Systemd-koneistettu versio 2015 systemd 220 (RHEL 7.x käyttää systemd 219:ää).

Lähde: opennet.ru

Lisää kommentti