V cgroups v1 našli zranitelnost, která umožňuje vylomit se z izolovaného kontejneru

Před pár dny zpráva byla zveřejněna podrobnosti byly odhaleny zranitelnost to se našlo při implementaci mechanismu omezení zdrojů cgroup v1 v linuxovém jádře, které je již katalogizováno pod CVE-2022-0492.

Tato chyba zabezpečení byla nalezena se lze použít k výstupu z izolovaných kontejnerů a je podrobně popsáno, že problém existuje od jádra Linuxu 2.6.24.

V příspěvku na blogu je to zmíněno zranitelnost je způsobena logickou chybou v obslužné rutině souboru release_agent, takže při spuštění ovladače s plnými oprávněními nebyly provedeny správné kontroly.

Soubor release_agent se používá k definování programu, který jádro spouští když proces končí v cgroup. Tento program běží jako root se všemi "schopnostmi" v kořenovém jmenném prostoru. Ke konfiguraci release_agent měl mít přístup pouze administrátor, ale ve skutečnosti byly kontroly omezeny na udělení přístupu uživateli root, což nevylučovalo změnu konfigurace z kontejneru nebo neadministrativním uživatelem root (CAP_SYS_ADMIN ). .

Dříve, tato funkce by nebyla vnímána jako zranitelnost, ale situace se změnila s příchodem jmenných prostorů s identifikátory uživatelů (user namespaces), které umožňují vytvářet samostatné uživatele root v kontejnerech, které se nepřekrývají s uživatelem root hlavního prostředí.

V důsledku toho, pro útok stačí v kontejneru, který má vlastního uživatele root v samostatném prostoru pro ID uživatele a zapojte ovladač release_agent, který po dokončení procesu poběží se všemi oprávněními nadřazeného prostředí.

Ve výchozím nastavení je cgroupfs připojen do kontejneru pouze pro čtení, ale není problém znovu připojit tento pseudofs v režimu zápisu s právy CAP_SYS_ADMIN nebo vytvořením vnořeného kontejneru se samostatným uživatelským jmenným prostorem pomocí systémového volání pro zastavení sdílení, ve kterém jsou práva CAP_SYS_ADMIN jsou dostupné pro vytvořený kontejner.

Útok lze provést tak, že budete mít práva root v izolovaném kontejneru nebo spuštěním kontejneru bez příznaku no_new_privs, který zakazuje získávání dalších oprávnění.

Systém musí mít povolenou podporu jmenných prostorů uživatele (ve výchozím nastavení povoleno na Ubuntu a Fedoře, ale není povoleno na Debianu a RHEL) a mají přístup ke kořenové cgroup v1 (například Docker spouští kontejnery v kořenové cgroup RDMA). Útok je také možný s oprávněními CAP_SYS_ADMIN, v takovém případě není vyžadována podpora pro uživatelské jmenné prostory a přístup ke kořenové hierarchii cgroup v1.

Kromě prolomení izolovaného kontejneru tato zranitelnost také umožňuje procesy spouštěné uživatelem root bez „schopnosti“ nebo jakýmkoli uživatelem s právy CAP_DAC_OVERRIDE (útok vyžaduje přístup k souboru /sys/fs/cgroup/*/release_agent, který vlastní root), abyste získali přístup ke všem "schopnostem" systému.

Kromě kontejnerů může tato chyba zabezpečení také umožnit kořenovým hostitelským procesům bez schopností nebo hostitelským procesům bez oprávnění root se schopností CAP_DAC_OVERRIDE eskalovat oprávnění na plné schopnosti. To může útočníkům umožnit obejít zpřísňující opatření používaná určitými službami, které odstraňují funkce ve snaze omezit dopad, pokud dojde ke kompromisu.

Unit 42 doporučuje uživatelům upgradovat na pevnou verzi jádra. U běžících kontejnerů povolte Seccomp a ujistěte se, že je povolen AppArmor nebo SELinux. Uživatelé Prisma Cloud mohou nahlédnout do sekce „Ochrany Prisma Cloud“, kde se dozvíte, jaká zmírnění poskytuje Prisma Cloud.

Všimněte si, že tuto chybu zabezpečení nelze zneužít při použití ochranných mechanismů Seccomp, AppArmor nebo SELinux pro další izolaci kontejnerů, protože Seccomp blokuje systémové volání unshare() a AppArmor a SELinux neumožňují připojení cgroupfs v režimu zápisu.

Nakonec stojí za zmínku, že to bylo opraveno ve verzích jádra 5.16.12, 5.15.26, 5.10.97, 5.4.177, 4.19.229, 4.14.266 a 4.9.301. Vydání aktualizací balíčků v distribucích můžete sledovat na těchto stránkách: DebianSUSEubuntuRHELFedoraGentooArch Linux.

Konečně pokud máte zájem o tom vědět více, můžete zkontrolovat podrobnosti v následující odkaz.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.