Kerentanan ing cgroups v1 sing ngidini uwal saka wadhah sing terisolasi

Rincian kerentanan (CVE-2022-0492) ing implementasine mekanisme watesan sumber daya cgroups v1 ing kernel Linux, sing bisa digunakake kanggo uwal saka wadhah sing terisolasi, wis dibeberke. Masalah wis ana wiwit kernel Linux 2.6.24 lan didandani ing rilis kernel 5.16.12, 5.15.26, 5.10.97, 5.4.177, 4.19.229, 4.14.266, lan 4.9.301. Sampeyan bisa ngetutake publikasi nganyari paket ing distribusi ing kaca iki: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux.

Kerentanan kasebut amarga kesalahan logika ing pawang file release_agent sing gagal nindakake pemeriksaan sing tepat nalika mbukak pawang kanthi hak istimewa lengkap. File release_agent digunakake kanggo nemtokake program sing bakal dieksekusi dening kernel nalika proses ing cgroup diakhiri. Program iki lumaku minangka root lan kabeh "kapabilitas" ing ruang jeneng root. Dianggep mung administrator sing nduweni akses menyang setelan release_agent, nanging ing kasunyatan, pamriksan diwatesi kanggo menehi akses menyang pangguna root, sing ora ngilangi setelan sing diganti saka wadhah utawa dening pangguna root tanpa hak administrator (CAP_SYS_ADMIN). ).

SadurungΓ©, fitur kasebut ora bakal dianggep minangka kerentanan, nanging kahanan kasebut wis diganti kanthi munculΓ© ruang jeneng pangguna (ruang jeneng pangguna), sing ngidini sampeyan nggawe pangguna root sing kapisah ing wadhah sing ora tumpang tindih karo pangguna root. lingkungan utama. Mulane, kanggo serangan, cukup nyambungake pawang release_agent ing wadhah sing nduweni pangguna root dhewe ing ruang ID pangguna sing kapisah, sing, sawise ngrampungake proses kasebut, bakal dieksekusi kanthi hak istimewa lingkungan utama.

Kanthi gawan, cgroupfs dipasang ing wadhah ing mode mung-maca, nanging ora ana masalah masang maneh pseudofs iki ing mode tulis yen sampeyan duwe hak CAP_SYS_ADMIN utawa kanthi nggawe wadhah bersarang karo ruang jeneng pangguna sing kapisah nggunakake panggilan sistem unshare, sing Hak CAP_SYS_ADMIN kasedhiya kanggo wadhah sing digawe.

Kerentanan ing cgroups v1 sing ngidini uwal saka wadhah sing terisolasi

Serangan bisa ditindakake yen sampeyan duwe hak istimewa ROOT ing wadhah sing terisolasi utawa nalika mbukak wadhah tanpa flag no_new_privs, sing nglarang entuk hak istimewa tambahan. Sistem kasebut kudu duwe dhukungan kanggo ruang jeneng pangguna sing diaktifake (diaktifake kanthi standar ing Ubuntu lan Fedora, nanging ora diaktifake ing Debian lan RHEL) lan duwe akses menyang root cgroup v1 (contone, Docker mbukak wadhah ing cgroup RDMA root). Serangan kasebut uga bisa ditindakake yen sampeyan duwe hak istimewa CAP_SYS_ADMIN, mula ora dibutuhake dhukungan kanggo ruang jeneng pangguna lan akses menyang hierarki root cgroup v1.

Saliyane uwal saka wadhah sing terisolasi, kerentanan uga ngidini proses sing diluncurake dening pangguna root tanpa "kapabilitas" utawa pangguna sing duwe hak CAP_DAC_OVERRIDE (serangan kasebut mbutuhake akses menyang file /sys/fs/cgroup/*/release_agent, yaiku diduweni dening root) kanggo entuk akses menyang kabeh "kapabilitas" sistemik.

Punika nyatet sing kerentanan ora bisa eksploitasi nalika nggunakake Seccomp, AppArmor utawa mekanisme pangayoman SELinux kanggo isolasi tambahan saka kontaner, wiwit Seccomp pamblokiran akses kanggo unshare () telpon sistem, lan AppArmor lan SELinux ora ngidini soyo tambah cgroupfs ing mode nulis.

Source: opennet.ru

Add a comment