Vulnerabilitat en cgroups v1 que permet sortir del contenidor aïllat

S'han revelat detalls d'una vulnerabilitat (CVE-2022-0492) en la implementació del mecanisme de limitació de recursos de cgroups v1 al nucli. Linux, que es pot utilitzar per escapar de contenidors aïllats. El problema es manifesta començant pel nucli. Linux 2.6.24 i corregit a les versions del nucli 5.16.12, 5.15.26, 5.10.97, 5.4.177, 4.19.229, 4.14.266 i 4.9.301. Podeu fer un seguiment de la publicació d'actualitzacions de paquets a les distribucions en aquestes pàgines: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux.

La vulnerabilitat es deu a un error lògic al controlador de fitxers release_agent que no fa les comprovacions adequades quan s'executa el controlador amb privilegis complets. El fitxer release_agent s'utilitza per definir el programa que ha d'executar el nucli quan s'acaba un procés en un cgroup. Aquest programa s'executa com a root i amb totes les "capacitats" a l'espai de noms root. Es va suposar que només l'administrador tenia accés a la configuració release_agent, però en realitat les comprovacions es limitaven a concedir accés a l'usuari root, la qual cosa no excloïa que la configuració canviés des del contenidor o per un usuari root sense drets d'administrador (CAP_SYS_ADMIN). ).

Anteriorment, aquesta característica no s'hauria percebut com una vulnerabilitat, però la situació ha canviat amb l'arribada dels espais de noms d'usuari (espais de noms d'usuari), que permeten crear usuaris arrel separats en contenidors que no es superposen amb l'usuari root del entorn principal. En conseqüència, per a un atac, n'hi ha prou amb connectar el controlador release_agent en un contenidor que tingui el seu propi usuari root en un espai d'identificació d'usuari independent, que, un cop finalitzat el procés, s'executarà amb tots els privilegis de l'entorn principal.

De manera predeterminada, cgroupfs es munta en un contenidor en mode de només lectura, però no hi ha cap problema per tornar a muntar aquest pseudofs en mode d'escriptura si teniu drets CAP_SYS_ADMIN o creant un contenidor imbricat amb un espai de noms d'usuari separat mitjançant la trucada del sistema unshare, en la qual Els drets CAP_SYS_ADMIN estan disponibles per al contenidor creat.

Vulnerabilitat en cgroups v1 que permet sortir del contenidor aïllat

L'atac es pot dur a terme amb privilegis d'arrel en un contenidor aïllat o quan s'executa un contenidor sense el senyalador no_new_privs, que impedeix que es concedeixin privilegis addicionals. Els espais de noms d'usuari han d'estar habilitats al sistema (habilitats per defecte a Ubuntu i Fedora, però no activat a Debian i RHEL) i accés al grup de control arrel v1 (per exemple, Docker executa contenidors al grup de control arrel RDMA). L'atac també és possible amb privilegis CAP_SYS_ADMIN, en aquest cas no es requereix suport d'espai de noms d'usuari ni accés a la jerarquia del grup de control arrel v1.

A més d'escapar d'un contenidor aïllat, la vulnerabilitat també permet processos llançats per un usuari root sense "capacitats" o qualsevol usuari amb drets CAP_DAC_OVERRIDE (l'atac requereix accés al fitxer /sys/fs/cgroup/*/release_agent, que és propietat de root) per accedir a totes les "capacitats" sistèmiques.

Cal destacar que la vulnerabilitat no es pot explotar quan s'utilitzen els mecanismes de protecció Seccomp, AppArmor o SE.Linux per a un aïllament addicional dels contenidors, ja que Seccomp bloqueja la crida a la crida del sistema unshare(), i AppArmor i SELinux no permeti muntar cgroupfs en mode d'escriptura.

Font: opennet.ru

Compreu allotjament fiable per a llocs amb protecció DDoS, servidors VPS VDS 🔥 Compra allotjament web fiable amb protecció DDoS, servidors VPS VDS | ProHoster