Sebezhetőséget találtak a cgroups v1-ben, amely lehetővé teszi egy elszigetelt tárolóból való kitörést

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: DebianSUSEUbuntuRHELFedoraGentooArch Linux.

Végül ha érdekel, hogy többet tudjon meg róla, ellenőrizheti a részleteket a következő link.


Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.