Dua kelemahan ditemui dalam Snap dan dibenarkan untuk menjalankan kod sebagai root

Qualys didedahkan berita yang saya kenal pasti dua kelemahan (CVE-2021-44731 dan CVE-2021-44730) dalam utiliti snap-confine, dihantar dengan bendera SUID akar dan dipanggil oleh proses snapd untuk menjana persekitaran boleh laku untuk aplikasi yang diedarkan dalam pakej snap.

Dalam catatan blog disebutkan bahawa kelemahan membenarkan pengguna tempatan yang tidak mempunyai hak untuk mencapai pelaksanaan kod sebagai root dalam sistem.

Kerentanan pertama membolehkan serangan manipulasi pautan fizikal, tetapi memerlukan melumpuhkan perlindungan pautan keras sistem (dengan menetapkan sysctl fs.protected_hardlinks kepada 0).

Masalahnya ia disebabkan oleh pengesahan yang salah terhadap lokasi boleh laku daripada utiliti snap-update-ns dan snap-discard-ns yang berjalan sebagai root. Laluan ke fail ini dikira dalam fungsi sc_open_snapd_tool() berdasarkan laluannya sendiri dari /proc/self/exe, membolehkan anda membuat pautan keras untuk mengurung dalam direktori anda dan meletakkan pilihan anda untuk snap-update-ns dan snap -discard-ns dalam direktori ini. Apabila dilancarkan daripada pautan keras, snap-confine sebagai root akan melaksanakan fail snap-update-ns dan snap-discard-ns yang digantikan oleh penyerang daripada direktori semasa.

Eksploitasi yang berjaya terhadap kelemahan ini membolehkan mana-mana pengguna yang tidak mempunyai keistimewaan untuk mendapatkan keistimewaan root pada hos yang terdedah. Penyelidik keselamatan Qualys telah dapat mengesahkan kelemahan secara bebas, membangunkan eksploitasi, dan memperoleh keistimewaan akar penuh pada pemasangan Ubuntu lalai.

Sebaik sahaja pasukan penyelidik Qualys mengesahkan kelemahan, kami terlibat dalam pendedahan kelemahan yang bertanggungjawab dan menyelaraskan dengan pengedaran vendor dan sumber terbuka untuk mengumumkan kelemahan yang baru ditemui ini.

Kelemahan kedua adalah disebabkan oleh keadaan perlumbaan dan boleh dieksploitasi dalam konfigurasi desktop Ubuntu lalai. Untuk eksploit berfungsi dengan jayanya pada Pelayan Ubuntu, anda mesti memilih salah satu pakej daripada bahagian "Snap Pelayan Ditampilkan" semasa pemasangan.

keadaan bangsa nyata dalam fungsi setup_private_mount(). dipanggil semasa penyediaan ruang nama titik pelekap untuk pakej segera. Fungsi ini mencipta direktori sementara "/tmp/snap.$SNAP_NAME/tmp" atau menggunakan yang sedia ada untuk memaut dan melekapkan direktori bagi pakej snap kepadanya.

Memandangkan nama direktori sementara boleh diramal, penyerang boleh menukar kandungannya kepada pautan simbolik selepas mengesahkan pemilik, tetapi sebelum memanggil sistem pelekap. Sebagai contoh, anda boleh mencipta symlink "/tmp/snap.lxd/tmp" dalam direktori /tmp/snap.lxd yang menghala ke direktori arbitrary dan panggilan mount() akan mengikut symlink dan melekapkan direktori dalam ruang daripada nama.

Begitu juga, anda boleh melekapkan kandungannya dalam /var/lib dan, mengatasi /var/lib/snapd/mount/snap.snap-store.user-fstab, atur untuk melekapkan direktori /etc anda dalam snap ruang nama pakej untuk memuatkan pustaka anda daripada akses root dengan menggantikan /etc/ld.so.preload.

Ia diperhatikan bahawa mencipta eksploitasi ternyata menjadi tugas yang tidak remeh, memandangkan utiliti snap-confine ditulis menggunakan teknik pengaturcaraan selamat (snapd ditulis dalam Go, tetapi C digunakan untuk snap-confine), mempunyai perlindungan berdasarkan profil AppArmor, menapis panggilan sistem berdasarkan mekanisme seccomp dan menggunakan ruang nama pelekap untuk pengasingan.

Walau bagaimanapun, para penyelidik dapat menyediakan eksploitasi berfungsi untuk mendapatkan akses root pada sistem. Kod eksploitasi akan dikeluarkan beberapa minggu selepas pengguna memasang kemas kini yang disediakan.

Akhirnya, ia patut disebutMasalah telah dibetulkan dalam kemas kini pakej snapd untuk Ubuntu versi 21.10, 20.04 dan 18.04.

Sebagai tambahan kepada pengedaran lain yang menggunakan Snap, Snapd 2.54.3 telah dikeluarkan, yang, sebagai tambahan kepada masalah di atas, membetulkan kerentanan lain (CVE-2021-4120), yang membolehkan, apabila memasang pakej pemalam yang direka khas, mengatasi peraturan AppArmor sewenang-wenangnya dan memintas sekatan akses yang ditetapkan untuk pakej.

Jika anda berminat untuk mengetahui lebih lanjut mengenainya, anda boleh menyemak butirannya Dalam 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.