A CVE-2022-0847 (Dirty Pipe) sérülékenység megértése
Ebben a bejegyzésben a Linux kernel egyik kritikus sérülékenységét vizsgáljuk, amelyet CVE-2022-0847 alatt regisztráltak. Ez a hiba, amelyet "Dirty Pipe" néven is ismernek, lehetővé teszi egy nem rendszergazdai (unprivileged) helyi felhasználó számára, hogy jogosultságot szerezzen a rendszer felett.
Mi ez a sérülékenység?
A hiba a Linux kernel pipe-kezelésének megvalósításában található (pl. copy_page_to_iter_pipe
és push_pipe
függvények), ahol a pipe buffer struktúra flags
mezője hibásan van inicializálva. Ez azt eredményezi, hogy a mező régi, érvénytelen értékeket tartalmazhat, ami lehetőséget ad egy támadónak arra, hogy írjon olyan fájloldalakba, amelyek alapértelmezés szerint csak olvashatóak.
Hogyan működik?
A támadó olyan csőbe ír adatot, amely olvasható fájlra vagy szimbolikus linkre mutat. A kernel ilyenkor új memóriát próbál lefoglalni a pipe buffer számára, de a nem megfelelően inicializált flags
mező régi, veszélyes értékeket tartalmazhat. Ennek eredményeként a kernel nem ellenőrzi megfelelően, hogy az írás érvényes-e, így a támadó meg tudja változtatni az oldalcache-t – még csak olvasható fájlokon keresztül is.
Kik érintettek?
Bármely rendszer, amely érintett Linux kernel verziót futtat, potenciálisan veszélyben van. Az alábbi disztribúciók megerősítették az érintettséget:
- Red Hat
- SUSE
- NetApp ONTAP
- SonicWall
Enyhítési lépések
Az érintett rendszerek esetében javasolt azonnal frissíteni a javított kernelverzióra. Az alábbi linkeken megtalálhatók a különböző disztribúciókhoz kiadott javítások:
Hivatkozott források
- Bugzilla Red Hat – CVE-2022-0847
- Dirty Pipe hivatalos weboldal
- Packet Storm Security – SUID bináris jogosultságkiterjesztés
- Packet Storm Security – Privilege Escalation
- Packet Storm Security – Helyi jogosultságkiterjesztés
- SUSE tudásbázis
- NetApp biztonsági figyelmeztetés
- Siemens biztonsági figyelmeztetés (PDF)
- SonicWall PSIRT közlemény
- Exploit / PoC: