Kerentanan dalam firejail memungkinkan akses root ke sistem

Kerentanan (CVE-2022-31214) telah diidentifikasi dalam utilitas isolasi aplikasi Firejail yang memungkinkan pengguna lokal mendapatkan hak akses root pada sistem host. Ada eksploitasi yang berfungsi tersedia dalam domain publik, diuji dalam rilis terkini openSUSE, Debian, Arch, Gentoo dan Fedora dengan utilitas firejail terinstal. Masalah ini telah diperbaiki pada rilis firejail 0.9.70. Sebagai solusi perlindungan, Anda dapat mengatur parameter β€œjoin no” dan β€œforce-nonewprivs yes” di pengaturan (/etc/firejail/firejail.config).

Firejail menggunakan namespace, AppArmor, dan pemfilteran panggilan sistem (seccomp-bpf) di Linux untuk isolasi, tetapi memerlukan hak istimewa yang lebih tinggi untuk menyiapkan eksekusi terisolasi, yang diperoleh melalui pengikatan ke flag utilitas suid root atau dijalankan dengan sudo. Kerentanan ini disebabkan oleh kesalahan logika opsi β€œ--join=”. ", dimaksudkan untuk menyambung ke lingkungan terisolasi yang sudah berjalan (analog dengan perintah login untuk lingkungan kotak pasir) dengan definisi lingkungan berdasarkan pengidentifikasi proses yang berjalan di dalamnya. Selama fase pengaturan ulang pra-hak istimewa, firejail menentukan hak istimewa dari proses yang ditentukan dan menerapkannya ke proses baru yang terhubung ke lingkungan menggunakan opsi β€œ-join”.

Sebelum menghubungkan, ia memeriksa apakah proses yang ditentukan berjalan di lingkungan firejail. Pemeriksaan ini mengevaluasi keberadaan file /run/firejail/mnt/join. Untuk mengeksploitasi kerentanan, penyerang dapat mensimulasikan lingkungan firejail fiktif dan tidak terisolasi menggunakan mount namespace, dan kemudian menyambungkannya menggunakan opsi β€œ--join”. Jika pengaturan tidak mengaktifkan mode pelarangan perolehan hak istimewa tambahan dalam proses baru (prctl NO_NEW_PRIVS), firejail akan menghubungkan pengguna ke lingkungan dummy dan mencoba menerapkan pengaturan namespace pengguna dari proses init (PID 1).

Akibatnya, proses yang terhubung melalui "firejail -join" akan berakhir di namespace ID pengguna asli pengguna dengan hak istimewa yang tidak berubah, tetapi di ruang titik mount yang berbeda, sepenuhnya dikendalikan oleh penyerang. Seorang penyerang juga dapat menjalankan program setuid-root di ruang titik mount yang dibuatnya, yang memungkinkan, misalnya, mengubah pengaturan /etc/sudoers atau parameter PAM dalam hierarki filenya dan dapat menjalankan perintah dengan hak root menggunakan sudo atau utilitas su.

Sumber: opennet.ru

Tambah komentar