De hittade en sårbarhet i cgroups v1 som tillåter att bryta sig ut ur en isolerad behållare

Några dagar sen nyheten släpptes detaljer har avslöjats en sårbarhet som hittades i genomförandet av mekanismen resursbegränsning cgroup v1 i Linux-kärnan som redan är katalogiserad under CVE-2022-0492.

Denna sårbarhet hittades se kan användas för att lämna isolerade behållare och det är detaljerat att problemet har funnits sedan Linux-kärnan 2.6.24.

I blogginlägget nämns det sårbarheten beror på ett logiskt fel i release_agent-filhanteraren, så de korrekta kontrollerna utfördes inte när föraren kördes med fullständiga behörigheter.

Filen release_agent används för att definiera programmet som kärnan kör när en process slutar i en c-grupp. Detta program körs som root med all "kapacitet" i rotnamnutrymmet. Det var bara administratören som skulle ha tillgång till release_agent-konfigurationen, men i verkligheten var kontrollerna begränsade till att ge åtkomst till root-användaren, vilket inte uteslöt att ändra konfigurationen från behållaren eller av den icke-administrativa root-användaren (CAP_SYS_ADMIN ) .

Tidigare, den här funktionen skulle inte ha uppfattats som en sårbarhet, men situationen har förändrats i och med tillkomsten av användaridentifieringsnamnrymder (användarnamnutrymmen), som låter dig skapa separata rotanvändare i behållare som inte överlappar rotanvändaren i huvudmiljön.

i enlighet därmed, för en attack räcker det i en container som har en egen rootanvändare i ett separat användar-id-utrymme för att koppla in din release_agent-hanterare, som, när processen är klar, kommer att köras med alla privilegier för den överordnade miljön.

Som standard är cgroupfs monterat i en skrivskyddad behållare, men det är inga problem att montera om dessa pseudofs i skrivläge med CAP_SYS_ADMIN-rättigheter eller genom att skapa en kapslad behållare med ett separat användarnamnområde med hjälp av systemanropet för att stoppa delning, där CAP_SYS_ADMIN-rättigheterna är tillgängliga för den skapade behållaren.

Attacken kan göras genom att ha root-privilegier i en isolerad behållare eller genom att köra behållaren utan flaggan no_new_privs, som förbjuder att få ytterligare privilegier.

Systemet måste ha stöd för namnutrymmen aktiverat användare (aktiverad som standard på Ubuntu och Fedora, men inte aktiverad på Debian och RHEL) och har tillgång till root v1 cgroup (till exempel, Docker kör behållare i RDMA root cgroup). Attacken är också möjlig med CAP_SYS_ADMIN-privilegier, i vilket fall stöd för användarnamnutrymmen och åtkomst till rothierarkin för cgroup v1 inte krävs.

Förutom att bryta sig ut ur den isolerade behållaren tillåter sårbarheten även processer som startas av rotanvändaren utan "kapacitet" eller någon användare med CAP_DAC_OVERRIDE-rättigheter (attacken kräver åtkomst till filen /sys/fs/cgroup/*/release_agent som ägs av root) för att få tillgång till alla "funktioner" i systemet.

Bortsett från behållare, kan sårbarheten också tillåta rotvärdprocesser utan kapacitet, eller icke-rotvärdprocesser med CAP_DAC_OVERRIDE-kapaciteten, att eskalera privilegier till full kapacitet. Detta kan tillåta angripare att kringgå en förstärkningsåtgärd som används av vissa tjänster, som tar bort kapacitet i ett försök att begränsa effekten om en kompromiss inträffar.

Enhet 42 rekommenderar användare att uppgradera till en fast kärnversion. För de som kör containrar, aktivera Secomp och se till att AppArmor eller SELinux är aktiverat. Prisma Cloud-användare kan hänvisa till avsnittet "Prisma Cloud Protections" för att se de begränsningar som Prisma Cloud tillhandahåller.

Observera att sårbarheten inte kan utnyttjas när man använder Seccomp, AppArmor eller SELinux skyddsmekanismer för ytterligare containerisolering, eftersom Seccomp blockerar unshare() systemanropet och AppArmor och SELinux inte tillåter att cgroupfs monteras i skrivläge.

Slutligen är det värt att nämna att det fixades i kärnversionerna 5.16.12, 5.15.26, 5.10.97, 5.4.177, 4.19.229, 4.14.266 och 4.9.301. Du kan följa releasen av paketuppdateringar i distributioner på dessa sidor: DebianSUSEubuntuRHELfedoraGentooArch Linux.

Slutligen om du är intresserad av att veta mer om detkan du kontrollera detaljerna i följande länk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.