Tizimga ildiz kirishiga ruxsat beruvchi firejaildagi zaiflik

Firejail ilovalarini izolyatsiya qilish yordam dasturida mahalliy foydalanuvchiga xost tizimida ildiz huquqlarini olish imkonini beruvchi zaiflik (CVE-2022-31214) aniqlandi. Jamoat mulkida ishlaydigan ekspluatatsiya mavjud bo'lib, u firejail yordam dasturi o'rnatilgan openSUSE, Debian, Arch, Gentoo va Fedora-ning joriy versiyalarida sinovdan o'tgan. Muammo firejail 0.9.70 versiyasida tuzatilgan. Himoyaga vaqtinchalik yechim sifatida sozlamalarda (/etc/firejail/firejail.config) “qo‘shilish yo‘q” va “force-nonewprivs yes” parametrlarini o‘rnatishingiz mumkin.

Firejail izolyatsiya qilish uchun Linuxda nom maydonlari, AppArmor va tizim chaqiruvlarini filtrlashdan (seccomp-bpf) foydalanadi, lekin izolyatsiyalangan ijroni o'rnatish uchun yuqori imtiyozlarni talab qiladi, bu yordam bayrog'i suid root bilan bog'lanish yoki sudo bilan ishlash orqali erishadi. Zaiflik “--join=” parametri mantiqidagi xatolik tufayli yuzaga keladi, u allaqachon ishlayotgan izolyatsiyalangan muhitga (qum qutisi muhiti uchun kirish buyrug'iga o'xshash) ulanish uchun mo'ljallangan. unda ishlayotgan jarayon identifikatori. Imtiyozlarni qayta tiklash bosqichida firejail belgilangan jarayonning imtiyozlarini aniqlaydi va ularni “-join” opsiyasi yordamida atrof-muhitga ulangan yangi jarayonga qo'llaydi.

Ulanishdan oldin u belgilangan jarayonning firejail muhitida ishlayotganligini tekshiradi. Ushbu tekshirish /run/firejail/mnt/join faylining mavjudligini baholaydi. Zaiflikdan foydalanish uchun tajovuzkor o'rnatish nomlar maydonidan foydalangan holda xayoliy, izolyatsiyalanmagan firejail muhitini taqlid qilishi va "--join" opsiyasi yordamida unga ulanishi mumkin. Agar sozlamalar yangi jarayonlarda qo'shimcha imtiyozlarni olishni taqiqlash rejimini yoqmasa (prctl NO_NEW_PRIVS), firejail foydalanuvchini soxta muhitga ulaydi va boshlash jarayonining foydalanuvchi nom maydoni sozlamalarini qo'llashga harakat qiladi (PID 1).

Natijada, "firejail -join" orqali ulangan jarayon foydalanuvchining asl foydalanuvchi identifikatori nom maydonida o'zgarmagan imtiyozlarga ega bo'ladi, lekin tajovuzkor tomonidan to'liq boshqariladigan boshqa o'rnatish nuqtasi bo'shlig'ida tugaydi. Buzg'unchi o'zi yaratgan o'rnatish nuqtasi maydonida setuid-root dasturlarini ham bajarishi mumkin, bu, masalan, fayl ierarxiyasidagi /etc/sudoers sozlamalarini yoki PAM parametrlarini o'zgartirishga va sudo yoki buyruqlar yordamida ildiz huquqlari bilan buyruqlarni bajarishga imkon beradi. kommunal xizmatlar.

Manba: opennet.ru

a Izoh qo'shish