Mereka mengesan kelemahan dalam penjara api yang membenarkan akses root kepada sistem

Mereka baru-baru ini mengeluarkan berita bahawa kelemahan dikenal pasti (sudah disenaraikan di bawah CVE-2022-31214) dalam alat kotak pasir aplikasi Firejail, diperincikan bahawa kecacatan yang dikesan boleh membenarkan pengguna tempatan menjadi akar pada sistem hos.

Firejail menggunakan mekanisme ruang nama, AppArmor, dan penapisan panggilan sistem (seccomp-bpf) dalam Linux untuk pengasingan, tetapi memerlukan keistimewaan yang tinggi untuk mengkonfigurasi keluaran terpencil, yang diperolehi dengan mengikat pada utiliti bendera akar suid atau dijalankan dengan sudo.

Kerentanan ini disebabkan oleh ralat dalam logik pilihan "–join=" », direka untuk menyambung ke persekitaran terpencil yang sudah berjalan (serupa dengan arahan log masuk untuk persekitaran kotak pasir) dengan persekitaran yang ditakrifkan oleh ID proses yang berjalan di dalamnya. Dalam fasa prapelancaran, penjara api mengesan keistimewaan proses yang ditentukan dan menggunakannya pada proses baharu yang menyertai persekitaran dengan pilihan "–sertai".

Sebelum menyambung, menyemak sama ada proses yang ditentukan sedang berjalan dalam persekitaran penjara api. Semakan ini menilai kewujudan fail /run/firejail/mnt/join. Untuk mengeksploitasi kelemahan, penyerang boleh mensimulasikan persekitaran penjara api tidak terpencil rekaan menggunakan ruang nama pelekap dan kemudian menyambungkannya menggunakan pilihan "--join".

Jika konfigurasi tidak mendayakan mod larangan mendapatkan keistimewaan tambahan dalam proses baharu (prctl NO_NEW_PRIVS), penjara api akan menyambungkan pengguna kepada persekitaran rekaan dan cuba menggunakan konfigurasi ruang nama pengguna bagi pengecam pengguna (pengguna ruang nama) proses init ( PID 1).

Kebanyakan logik di sebalik fungsi gabungan adalah dalam kod sumber daripada fail `src/firejail/join.c`. Bahagian kritikal kod dilaksanakan dengan keistimewaan tinggi (UID berkesan 0). ID proses diluluskan sebagai arahan hujah baris diperiksa untuk menentukan sama ada ia adalah rbekas dan tentukan beberapa sifatnya yang Ia juga terpakai kepada proses kemasukan baharu.

Kriteria utama untuk memutuskan sama ada untuk menyertai proses sasaran berjaya ialah kehadiran fail dalam ruang nama pelekap sasaran, proses ditemui dalam /run/firejail/mnt/join. Pengesahan ini dilakukan pada fFungsi `sedia_untuk_sertai()`. Fail dibuka menggunakan lBendera `O_RDONLY|O_CLOEXEC` dan hasil surih `fstat()` sepatutnya memenuhi keperluan berikut:

– fail mestilah fail biasa.
– fail mesti dimiliki oleh userid 0 (seperti yang dilihat dari pengguna awal
ruang nama).
– saiz fail mestilah 1 bait.

Akibatnya, proses yang disambungkan melalui "firejail --join" akan berakhir di ruang nama ID pengguna asal pengguna dengan keistimewaan yang tidak berubah, tetapi dalam ruang titik pelekap yang berbeza, dikawal sepenuhnya oleh penyerang.

Shell "bergabung" yang terhasil kini akan hidup pada pengguna awal
ruang nama, namun masih mengekalkan keistimewaan pengguna biasa asal ruang nama pelekap akan menjadi yang dikawal oleh penyerang. Sebagai
konfigurasi nonewprivs belum digunakan, penyerang boleh sekarang
jalankan program setuid-root dalam ruang nama mount ini

Khususnya, penyerang boleh menjalankan program setuid-root dalam ruang titik pelekap yang dibuatnya, membenarkannya, contohnya, menukar konfigurasi /etc/sudoers atau parameter PAM dalam hierarki failnya dan memperoleh keupayaan untuk menjalankan arahan sebagai root menggunakan sudo atau utilitinya.

Akhir sekali, perlu dinyatakan bahawa eksploitasi berfungsi telah dibangunkan, diuji pada versi semasa openSUSE, Debian, Arch, Gentoo dan Fedora dengan utiliti penjara api dipasang.

Masalahnya telah dibetulkan dalam penjara api versi 0.9.70. Sebagai pembetulan keselamatan, anda boleh menetapkan konfigurasi (/etc/firejail/firejail.config) kepada "no join" dan "force-nonewprivs yes".

Akhirnya sekiranya anda berminat untuk mengetahui lebih lanjut mengenainya, anda boleh menyemak butiran di pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.