Qualys parantos ngaidentipikasi dua kerentanan (CVE-2021-44731, CVE-2021-44730) dina utilitas snap-confine, anu dikirimkeun sareng flag root SUID sareng dipanggil ku prosés snapd pikeun nyiptakeun lingkungan anu tiasa dieksekusi pikeun aplikasi anu dikirimkeun dina pakét snap mandiri. Kerentanan ieu ngamungkinkeun pangguna lokal anu teu gaduh hak istimewa pikeun ngaéksekusi kode kalayan hak istimewa root dina sistem. Masalahna parantos dibenerkeun dina apdet pakét snapd ayeuna pikeun Ubuntu 21.10, 20.04 jeung 18.04.
Kerentanan munggaran (CVE-2021-44730) ngamungkinkeun serangan ngaliwatan manipulasi link teuas, tapi merlukeun nganonaktipkeun panyalindungan link teuas sistem (setting sysctl fs.protected_hardlinks ka 0). Masalahna disababkeun ku verifikasi anu salah ngeunaan lokasi file anu tiasa dieksekusi tina snap-update-ns sareng snap-discard-ns program helper dijalankeun salaku root. Jalur ka file ieu diitung dina fungsi sc_open_snapd_tool () dumasar kana jalur sorangan tina /proc/self/exe, nu ngidinan Anjeun pikeun nyieun tumbu teuas pikeun snap-kurung dina diréktori anjeun sarta nempatkeun versi sorangan tina snap- update-ns jeung snap- utiliti dina diréktori ieu discard-ns. Saatos ngajalankeun via tautan anu keras, snap-confine sareng hak akar bakal ngaluncurkeun file snap-update-ns sareng snap-discard-ns tina diréktori ayeuna, diganti ku panyerang.
Karentanan kadua disababkeun ku kaayaan balapan sareng tiasa dimanfaatkeun dina konfigurasi Ubuntu Desktop sacara standar. Supados exploit tiasa dianggo kalayan suksés dina Ubuntu Server meryogikeun pilihan nalika masang salah sahiji pakét tina bagian "Featured Server Snaps". Kaayaan balapan lumangsung dina fungsi setup_private_mount(), anu dipanggil nalika nyiapkeun namespace titik mount pikeun pakét snap. Fungsi ieu nyiptakeun diréktori samentawis "/tmp/snap.$SNAP_NAME/tmp" atanapi nganggo anu tos aya pikeun ngabeungkeut-mount diréktori pikeun pakét snap.
Kusabab nami diréktori samentawis tiasa diprediksi, panyerang tiasa ngagentos eusina ku tautan simbolis saatos mariksa anu gaduhna, tapi sateuacan nyauran telepon sistem gunung. Contona, Anjeun bisa nyieun hiji symlink "/tmp/snap.lxd/tmp" dina /tmp/snap.lxd diréktori ngarah ka hiji diréktori sawenang, sarta panggero pikeun Gunung () bakal nuturkeun symlink jeung Gunung diréktori di. snap ngaranspace. Dina cara anu sami, anjeun tiasa masang eusi anjeun dina /var/lib sareng, ku ngagentos /var/lib/snapd/mount/snap.snap-store.user-fstab, atur pamasangan diréktori /etc anjeun dina rohangan ngaran pakét snap pikeun ngatur loading perpustakaan anjeun tina kalawan hak root ku ngaganti /etc/ld.so.preload.
Ieu dicatet yén nyieun hiji mangpaatkeun tétéla janten tugas non-trivial, saprak utilitas snap-confine ditulis dina Go ngagunakeun téhnik programming aman, boga panyalindungan dumasar kana profil AppArmor, nyaring panggero sistem dumasar kana mékanisme seccomp, sarta ngagunakeun. spasi ngaran Gunung pikeun isolasi. Nanging, para panalungtik tiasa nyiapkeun eksploitasi kerja pikeun meunangkeun hak akar dina sistem. Kode eksploitasi bakal diterbitkeun dina sababaraha minggu saatos pangguna masang apdet anu disayogikeun.
sumber: opennet.ru
