Pár napja megjelent a hír részletek derültek ki sebezhetőség azt találták a mechanizmus végrehajtásában erőforrás korlátozás cgroup v1 a Linux kernelben, amely már szerepel a CVE-2022-0492 alatt.
Ez a sérülékenység se használható elszigetelt tartályok elhagyására és részletezi, hogy a probléma a Linux kernel 2.6.24 óta fennáll.
A blogbejegyzésben ez szerepel a sérülékenység oka a release_agent fájlkezelő logikai hibája, így a megfelelő ellenőrzések nem történtek meg, amikor az illesztőprogramot teljes jogosultságokkal futtatták.
A fájl A release_agent a kernel által végrehajtott program meghatározására szolgál amikor egy folyamat egy ccsoportban végződik. Ez a program rootként fut, a gyökér névtérben található összes „képességgel”. Csak a rendszergazdának kellett volna hozzáférnie a release_agent konfigurációhoz, de a valóságban az ellenőrzések a root felhasználó hozzáférésének megadására korlátozódtak, ami nem zárta ki, hogy a konfigurációt a tárolóból vagy a nem adminisztratív root felhasználó (CAP_SYS_ADMIN) módosítsa. .
Korábban, ezt a funkciót nem észlelték volna sebezhetőségként, de a helyzet megváltozott a felhasználói azonosító névterek (felhasználói névterek) megjelenésével, amelyek lehetővé teszik külön root felhasználók létrehozását olyan tárolókban, amelyek nem fedik át a fő környezet root felhasználóját.
Ennek megfelelően, támadáshoz elég egy olyan konténerben, aminek saját root felhasználója van egy külön felhasználói azonosító területen a release_agent kezelő csatlakoztatásához, amely a folyamat befejeződése után a szülőkörnyezet összes jogosultságával fog futni.
Alapértelmezés szerint a cgroupfs csak olvasható tárolóba van beillesztve, de nem okoz gondot ennek a pszeudofsnak a visszacsatolása írási módban CAP_SYS_ADMIN jogokkal, vagy egy beágyazott tároló létrehozásával külön felhasználói névtérrel a megosztás leállítására vonatkozó rendszerhívás segítségével, amelyben CAP_SYS_ADMIN jogok vannak. elérhetők a létrehozott tároló számára.
A támadás megtehető úgy, hogy root jogosultságokkal rendelkezik egy elszigetelt tárolóban vagy a tároló futtatásával a no_new_priv jelző nélkül, ami tiltja a további jogosultságok megszerzését.
A rendszernek engedélyeznie kell a névterek támogatását felhasználó (alapértelmezés szerint engedélyezve van az Ubuntu és a Fedora rendszeren, de nincs engedélyezve a Debian és RHEL rendszeren), és hozzá kell férnie a root v1 cgrouphoz (például a Docker az RDMA gyökér cgroupban futtat konténereket). A támadás CAP_SYS_ADMIN jogosultságokkal is lehetséges, ebben az esetben a felhasználói névterek támogatása és a cgroup v1 gyökérhierarchiájához való hozzáférés nem szükséges.
Az elkülönített tárolóból való kitörés mellett a sérülékenység lehetővé teszi a root felhasználó által "képességgel nem rendelkező" vagy bármely CAP_DAC_OVERRIDE jogosultsággal rendelkező felhasználó által elindított folyamatokat is (a támadáshoz hozzáférés szükséges a /sys/fs/cgroup/*/release_agent fájlhoz, amelynek tulajdonosa root), hogy hozzáférjen a rendszer összes „képességéhez”.
A tárolókon kívül a biztonsági rés lehetővé teheti a képességek nélküli gyökérgazda-folyamatok vagy a CAP_DAC_OVERRIDE képességgel rendelkező nem gyökérgazdafolyamatok számára is, hogy a jogosultságokat teljes képességekre emeljék. Ez lehetővé teheti a támadók számára, hogy megkerüljék az egyes szolgáltatások által használt szigorítási intézkedéseket, amelyek eltávolítják a képességeket, és megpróbálják korlátozni a hatást, ha kompromittálódik.
A 42-es egység azt javasolja a felhasználóknak, hogy frissítsenek egy rögzített kernelverzióra. Azoknál, akik konténereket futtatnak, engedélyezze a Seccomp-ot, és győződjön meg arról, hogy az AppArmor vagy a SELinux engedélyezve van. A Prisma Cloud felhasználói a „Prisma Cloud Protections” szakaszban megtekinthetik a Prisma Cloud által biztosított enyhítéseket.
Vegye figyelembe, hogy a sérülékenységet nem lehet kihasználni, ha Seccomp, AppArmor vagy SELinux védelmi mechanizmusokat használnak a tároló további elkülönítésére, mivel a Seccomp blokkolja az unshare() rendszerhívást, az AppArmor és a SELinux pedig nem teszi lehetővé a cgroupf-ok írási módban történő csatlakoztatását.
Végül érdemes megemlíteni, hogy az 5.16.12, 5.15.26, 5.10.97, 5.4.177, 4.19.229, 4.14.266 és 4.9.301 kernelverziókban javítva lett. Az alábbi oldalakon követheti nyomon a csomagfrissítések megjelenését a disztribúciókban: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux.
Végül ha érdekel, hogy többet tudjon meg róla, ellenőrizheti a részleteket a következő link.