A Linux.org.ru projekt koordinátora, Maxim „maxcom” Valjanski kijelentette, hogy a fórum motorjának szabad forráskódú licencét megváltoztatja.

Az io_uring aszinkron belső/kiadási interfészében, amelyet a Linux kernel biztosít, egy sebezhetőséget azonosítottak (CVE-2024-0582), amely lehetővé teszi, hogy egy nem privilegizált felhasználó root jogosultságokat szerezzen a rendszerben. A sebezhetőség kihasználásához elegendő a szokványos helyi hozzáférés a rendszerhez, anélkül, hogy névtér manipulációkra lenne szükség. Jelenleg egy működő exploit is nyilvánosan elérhető, valamint részletesen leírták a sebezhetőség kihasználásának második technikáját.

A sebezhetőség egy már felszabadított memória blokkhoz (use-after-free) való hozzáférésből adódik az io_uring alrendszerében, amely a buffer regisztrálásakor és felszabadításakor lép fel, amikor az IORING_REGISTER_PBUF_RING zászlóval jön létre. Amikor mmap() műveletet alkalmaznak a bufferre, az a felszabadítási művelet végrehajtása után is tükröződik a felhasználói térbe (IORING_UNREGISTER_PBUF_RING). Ezt a jellemzőt kihasználva a támadó olvasni és írni tud az operációs rendszer által visszaadott memóriaoldalakra.

A probléma a Linux kernel 6.4-es kiadásától kezdve jelentkezik, és a 6.7-es és 6.6.5-ös verziókban, valamint a 6.5.0-21-es kernelcsomagban lett javítva, amely az Ubuntu 22.04 és 23.10 rendszerekhez készült. Érdemes megjegyezni, hogy a fő kernelben a probléma javítása 2023 decemberében történt, a Google Zero projekt pedig január 8-án tette elérhetővé a sebezhetőségre utaló hibajelentést, míg a javított kernelcsomag az Ubuntu számára csak 2024. február 22-én készült el. Más disztribúciók esetében a javítások és a sebezhetőségre való hajlam nyomon követhető a következő oldalakon: Debian, Gentoo, RHEL, SUSE, Fedora, Arch.

Az első exploit kontrollált számú memóriaoldal létrehozásával manipulál, hogy meghatározza a kernelben a memória elrendezését és hozzáférjen a szomszédos fizikai memóriaoldalakhoz, egy bizonyos módon kitöltött hálózati socket struktúrák tartalmát használva mint jelzőt. Az exploit kódjának végrehajtásához egy "gadget" (a kernelben létező utasítások sorozata) kerül alkalmazásra, amely a call_usermodehelper_exec függvény végrehajtásához vezet, amely célja a felhasználói térbeli folyamatok indítása a kernelből.

A második exploit arra alapoz, hogy amikor az összes slab-blokkból kifogy a cache (például, amikor egy fájlt többször megnyitnak), a támadó által elérhető szabad memóriaoldalakat a memóriaelosztó rendszer új slab-blokk létrehozására használja, és az összes új fájlszerkezet ebben a blokkban kezd el elhelyezkedni. Ennek megfelelően egyes fájlszerkezetek azokba a memóriaoldalakba kerülnek, amelyeket a támadó olvasni és írni tud. Az exploit lényege az, hogy elérje a fájl cache-ében a szükséges fájlt, és kicserélje a vele összefüggő fájlszerkezetekben az f_mode mezőt, amely a hozzáférési jogokat határozza meg, lehetővé téve, hogy a szükséges rendszerfájl írásra hozzáférhetővé váljon, például a /etc/passwd.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster