Mereka menemukan kerentanan di cgroups v1 yang memungkinkan keluar dari wadah yang terisolasi

Beberapa hari yang lalu berita itu dirilis detail telah terungkap kerentanan yang ditemukan dalam pelaksanaan mekanisme keterbatasan sumber daya cgroup v1 di kernel Linux yang sudah dikatalogkan di bawah CVE-2022-0492.

Kerentanan ini ditemukane dapat digunakan untuk keluar dari wadah yang terisolasi dan dirinci bahwa masalahnya telah ada sejak kernel Linux 2.6.24.

Dalam posting blog disebutkan bahwa kerentanan ini disebabkan oleh kesalahan logis dalam penangan file release_agent, jadi pemeriksaan yang tepat tidak dilakukan saat driver dijalankan dengan izin penuh.

file release_agent digunakan untuk mendefinisikan program yang dijalankan oleh kernel ketika suatu proses berakhir di cgroup. Program ini berjalan sebagai root dengan semua "kemampuan" di namespace root. Hanya administrator yang seharusnya memiliki akses ke konfigurasi release_agent, tetapi pada kenyataannya, pemeriksaan terbatas pada pemberian akses ke pengguna root, yang tidak menghalangi perubahan konfigurasi dari wadah atau oleh pengguna root non-administratif (CAP_SYS_ADMIN ) .

sebelumnya, fitur ini tidak akan dianggap sebagai kerentanan, tetapi situasinya telah berubah dengan munculnya ruang nama pengenal pengguna (ruang nama pengguna), yang memungkinkan Anda membuat pengguna root terpisah dalam wadah yang tidak tumpang tindih dengan pengguna root dari lingkungan utama.

Akibatnya, untuk serangan, cukup di wadah yang memiliki pengguna root sendiri di ruang id pengguna terpisah untuk mencolokkan penangan release_agent Anda, yang, setelah proses selesai, akan berjalan dengan semua hak istimewa dari lingkungan induk.

Secara default, cgroupfs dipasang dalam wadah hanya-baca, tetapi tidak ada masalah memasang kembali pseudof ini dalam mode tulis dengan hak CAP_SYS_ADMIN atau dengan membuat wadah bersarang dengan ruang nama pengguna terpisah menggunakan panggilan sistem untuk berhenti berbagi, di mana hak CAP_SYS_ADMIN tersedia untuk wadah yang dibuat.

Serangan itu dapat dilakukan dengan memiliki hak akses root dalam wadah yang terisolasi atau dengan menjalankan container tanpa flag no_new_privs, yang melarang mendapatkan hak istimewa tambahan.

Sistem harus memiliki dukungan untuk ruang nama yang diaktifkan user (diaktifkan secara default di Ubuntu dan Fedora, tetapi tidak diaktifkan di Debian dan RHEL) dan memiliki akses ke root v1 cgroup (misalnya, Docker menjalankan container di root cgroup RDMA). Serangan juga dimungkinkan dengan hak CAP_SYS_ADMIN, dalam hal ini dukungan untuk ruang nama pengguna dan akses ke hierarki root cgroup v1 tidak diperlukan.

Selain memecahkan wadah yang terisolasi, kerentanan juga memungkinkan proses yang dimulai oleh pengguna root tanpa "kemampuan" atau pengguna mana pun dengan hak CAP_DAC_OVERRIDE (serangan tersebut memerlukan akses ke file /sys/fs/cgroup/*/release_agent yang dimiliki oleh root) untuk mendapatkan akses ke semua "kemampuan" sistem.

Selain kontainer, kerentanan juga memungkinkan proses host root tanpa kemampuan, atau proses host non-root dengan kemampuan CAP_DAC_OVERRIDE, untuk meningkatkan hak istimewa ke kemampuan penuh. Ini memungkinkan penyerang untuk melewati tindakan pengerasan yang digunakan oleh layanan tertentu, yang menghilangkan kemampuan dalam upaya untuk membatasi dampak jika terjadi kompromi.

Unit 42 merekomendasikan pengguna meningkatkan ke versi kernel tetap. Untuk container yang sedang berjalan, aktifkan Seccomp dan pastikan AppArmor atau SELinux diaktifkan. Pengguna Prisma Cloud dapat merujuk ke bagian “Perlindungan Cloud Prisma” untuk melihat mitigasi yang diberikan oleh Prisma Cloud.

Perhatikan bahwa kerentanan tidak dapat dieksploitasi saat menggunakan mekanisme perlindungan Seccomp, AppArmor atau SELinux untuk isolasi container tambahan, karena Seccomp memblokir panggilan sistem unshare() dan AppArmor serta SELinux tidak mengizinkan cgroupfs dipasang dalam mode tulis.

Terakhir, perlu disebutkan bahwa itu diperbaiki di kernel versi 5.16.12, 5.15.26, 5.10.97, 5.4.177, 4.19.229, 4.14.266 dan 4.9.301. Anda dapat mengikuti rilis pembaruan paket dalam distribusi di halaman ini: DebianSUSEUbuntuRHELFedoraGentooArch Linux.

Akhirnya jika Anda tertarik untuk mengetahui lebih banyak tentangnya, Anda dapat memeriksa detailnya di link berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.