A systemd biztonsági rése, amely potenciálisan lehetővé teheti jogosultságai kiterjesztését

A systemd rendszerkezelőben azonosított sebezhetőség (CVE-2020 1712-), amely potenciálisan lehetővé teszi a kód végrehajtását emelt szintű jogosultságokkal egy speciálisan kialakított kérés elküldésével a DBus buszon keresztül. A problémát a tesztkiadás javította systemd 245-rc1 (javítások, amelyek megoldják a problémát: 1, 2, 3). A sérülékenységet a disztribúciókban javították Ubuntu, Fedora, RHEL (az RHEL 8-ban jelenik meg, de nincs hatással az RHEL 7-re), CentOS и SUSE/openSUSE, de a hír írásának időpontjában javítatlan maradt Debian и Arch Linux.

A sérülékenységet egy már felszabadult memóriaterülethez való hozzáférés okozza (használat után szabadon), amely akkor fordul elő, amikor a DBus-üzenetek feldolgozása közben aszinkron módon hajtanak végre kéréseket a Polkit felé. Egyes DBus interfészek gyorsítótárat használnak az objektumok rövid időre történő tárolására, és kiürítik a gyorsítótár-bejegyzéseket, amint a DBus busz felszabadul a többi kérés feldolgozására. Ha egy DBus metóduskezelő a bus_verify_polkit_async() függvényt használja, előfordulhat, hogy meg kell várnia a Polkit művelet befejeződését. Miután a Polkit készen áll, a kezelő újra meghívásra kerül, és hozzáfér a memóriában már elosztott adatokhoz. Ha a Polkit felé irányuló kérés túl sokáig tart, a gyorsítótárban lévő elemek törlődnek, mielőtt a DBus metóduskezelőt másodszor is meghívnák.

A sérülékenység kihasználását lehetővé tevő szolgáltatások között említhető a systemd-machined, amely biztosítja a DBus API org.freedesktop.machine1.Image.Clone-t, ami az adatok ideiglenes tárolását eredményezi a gyorsítótárban és aszinkron hozzáférést a Polkithoz. Felület
Az org.freedesktop.machine1.Image.Clone elérhető a rendszer minden kiváltság nélküli felhasználója számára, akik összeomolhatják a rendszerszolgáltatásokat, vagy potenciálisan a kód rootként történő végrehajtását idézhetik elő (a kihasználó prototípust még nem demonstrálták). A biztonsági rés kihasználását lehetővé tevő kód az volt - tette hozzá systemd-machined 2015-ös verzióban rendszer 220 (Az RHEL 7.x a systemd 219-et használja).

Forrás: opennet.ru

Hozzászólás