A Linux kernel VFS-ében található biztonsági rés, amely lehetővé teszi a jogosultságok kiterjesztését

Sebezhetőséget (CVE-2022-0185) azonosítottak a Linux kernel által biztosított Filesystem Context API-ban, amely lehetővé teszi a helyi felhasználók számára, hogy root jogosultságokat szerezzenek a rendszeren. A problémát azonosító kutató bemutatott egy olyan exploitot, amely lehetővé teszi a kód futtatását rootként az Ubuntu 20.04-en az alapértelmezett konfigurációban. A kihasználó kódot a tervek szerint egy héten belül teszik közzé a GitHubon, miután a disztribúciók kiadnak egy frissítést, amely javítja a biztonsági rést.

A sérülékenység a VFS legacy_parse_param() függvényében található, és az okozza, hogy nem sikerült megfelelően ellenőrizni a Filesystem Context API-t nem támogató fájlrendszereken megadott paraméterek maximális méretét. A túl nagy paraméter átadása az írandó adat méretének kiszámításához használt egész változó túlcsordulását okozhatja - a kódban van egy puffertúlcsordulás-ellenőrzés "if (len > PAGE_SIZE - 2 - size)", ami nem akkor dolgozzon, ha a méret értéke nagyobb, mint 4094. egész szám túlcsordulásnál az alsó korláton keresztül (egész alulcsordulás, ha a 4096 - 2 - 4095 előjel nélküli int-re önt, az eredmény 2147483648).

Ez a hiba lehetővé teszi, hogy egy speciálisan kialakított fájlrendszerkép elérésekor puffertúlcsordulást idézzen elő, és felülírja a kerneladatokat a lefoglalt memóriaterület után. A sérülékenység kihasználásához CAP_SYS_ADMIN jogokkal kell rendelkeznie, pl. rendszergazdai jogosítványok. A probléma az, hogy egy privilegizált felhasználó megszerezheti ezeket az engedélyeket egy elszigetelt tárolóban, ha a rendszer engedélyezi a felhasználói névterek támogatását. Például a felhasználói névterek alapértelmezés szerint engedélyezve vannak az Ubuntu és a Fedora rendszeren, de nem engedélyezettek a Debian és RHEL rendszeren (kivéve, ha konténerelválasztó platformokat használnak).

A probléma az 5.1-es Linux kernel óta jelentkezik, és a tegnapi 5.16.2, 5.15.16, 5.10.93, 5.4.173 frissítésekkel javították. A biztonsági rést javító csomagfrissítések már megjelentek az RHEL, a Debian, a Fedora és az Ubuntu számára. A javítás még nem érhető el Arch Linux, Gentoo, SUSE és openSUSE rendszereken. Biztonsági megoldásként a tároló elkülönítést nem használó rendszerek esetében a sysctl "user.max_user_namespaces" értékét 0-ra állíthatja: echo "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf # sysctl -p /etc/ sysctl.d/userns.conf

Forrás: opennet.ru

Hozzászólás