Zistili zraniteľnosť v cgroups v1, ktorá umožňuje vylomenie sa z izolovaného kontajnera

Pred pár dňami správa bola zverejnená podrobnosti boli odhalené zraniteľnosť to sa našlo pri implementácii mechanizmu obmedzenie zdrojov cgroup v1 v linuxovom jadre, ktoré je už katalogizované pod CVE-2022-0492.

Táto zraniteľnosť našla se možno použiť na výstup z izolovaných nádob a je podrobne uvedené, že problém je prítomný od jadra Linuxu 2.6.24.

V blogovom príspevku sa o tom píše chyba zabezpečenia je spôsobená logickou chybou v obslužnom programe súboru release_agent, takže správne kontroly neboli vykonané, keď bol ovládač spustený s plnými oprávneniami.

Súbor release_agent sa používa na definovanie programu, ktorý jadro spúšťa keď proces končí v cgroup. Tento program beží ako root so všetkými "možnosťami" v koreňovom mennom priestore. Iba administrátor mal mať prístup ku konfigurácii release_agent, ale v skutočnosti sa kontroly obmedzili na udelenie prístupu užívateľovi root, čo nevylučovalo zmenu konfigurácie z kontajnera alebo zo strany užívateľa root, ktorý nie je administrátorom (CAP_SYS_ADMIN ). .

predtým, táto funkcia by nebola vnímaná ako zraniteľnosť, ale situácia sa zmenila s príchodom užívateľských názvov (user namespaces), ktoré umožňujú vytvárať samostatných užívateľov root v kontajneroch, ktoré sa neprekrývajú s užívateľom root hlavného prostredia.

V súlade s tým, na útok stačí v kontajneri, ktorý má vlastného užívateľa root v samostatnom priestore ID užívateľa, aby ste zapojili váš handler release_agent, ktorý sa po dokončení procesu spustí so všetkými privilégiami nadradeného prostredia.

Štandardne je cgroupfs pripojený do kontajnera len na čítanie, ale nie je problém znova pripojiť tento pseudofs v režime zápisu s právami CAP_SYS_ADMIN alebo vytvorením vnoreného kontajnera so samostatným užívateľským menným priestorom pomocou systémového volania na zastavenie zdieľania, v ktorom sú práva CAP_SYS_ADMIN sú dostupné pre vytvorený kontajner.

Útok sa dá dosiahnuť oprávneniami root v izolovanom kontajneri alebo spustením kontajnera bez príznaku no_new_privs, ktorý zakazuje získanie ďalších privilégií.

Systém musí mať povolenú podporu pre priestory názvov (predvolene povolené na Ubuntu a Fedore, ale nie povolené na Debiane a RHEL) a majú prístup ku koreňovej cgroup v1 (napríklad Docker spúšťa kontajnery v koreňovej cgroup RDMA). Útok je možný aj s privilégiami CAP_SYS_ADMIN, v takom prípade nie je potrebná podpora pre užívateľské menné priestory a prístup ku koreňovej hierarchii cgroup v1.

Okrem prelomenia izolovaného kontajnera táto zraniteľnosť umožňuje aj procesy spustené používateľom root bez „schopnosti“ alebo ľubovoľným používateľom s právami CAP_DAC_OVERRIDE (útok vyžaduje prístup k súboru /sys/fs/cgroup/*/release_agent, ktorý vlastní root), aby ste získali prístup ku všetkým „možnostiam“ systému.

Okrem kontajnerov môže zraniteľnosť tiež umožniť koreňovým hostiteľským procesom bez schopností alebo iným hostiteľským procesom so schopnosťou CAP_DAC_OVERRIDE, aby eskalovali privilégiá na plné schopnosti. To môže útočníkom umožniť obísť sprísňujúce opatrenie používané určitými službami, ktoré odstraňujú funkcie v snahe obmedziť dopad, ak dôjde ku kompromisu.

Unit 42 odporúča používateľom prejsť na pevnú verziu jadra. Pre spustené kontajnery povoľte Seccomp a uistite sa, že je povolený AppArmor alebo SELinux. Používatelia Prisma Cloud si môžu pozrieť časť „Ochrany Prisma Cloud“, kde nájdete zmiernenia, ktoré poskytuje Prisma Cloud.

Upozorňujeme, že túto zraniteľnosť nemožno zneužiť pri používaní ochranných mechanizmov Seccomp, AppArmor alebo SELinux na dodatočnú izoláciu kontajnerov, pretože Seccomp blokuje systémové volanie unshare() a AppArmor a SELinux neumožňujú pripojenie cgroupfs v režime zápisu.

Nakoniec stojí za zmienku, že bol opravený vo verziách jadra 5.16.12, 5.15.26, 5.10.97, 5.4.177, 4.19.229, 4.14.266 a 4.9.301. Vydanie aktualizácií balíkov v distribúciách môžete sledovať na týchto stránkach: debianSUSEubuntuRHELFedoragentooArch Linux.

Konečne ak máte záujem dozvedieť sa o tom viac, môžete skontrolovať podrobnosti v nasledujúci odkaz.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.