Linux yadrosining VFS tizimidagi zaiflik, bu sizga imtiyozlaringizni oshirish imkonini beradi.

Linux yadrosi tomonidan taqdim etilgan Filesystem Context API'da zaiflik (CVE-2022-0185) aniqlandi, bu mahalliy foydalanuvchiga tizimda ildiz huquqlarini olish imkonini beradi. Muammoni aniqlagan tadqiqotchi standart konfiguratsiyada Ubuntu 20.04 da root sifatida kodni bajarishga imkon beruvchi ekspluatatsiya namoyishini nashr etdi. Ekspluatatsiya kodi GitHub’da tarqatishlar zaiflikni tuzatuvchi yangilanish chiqqanidan keyin bir hafta ichida joylashtirilishi rejalashtirilgan.

Zaiflik VFS’dagi legacy_parse_param() funksiyasida mavjud va Filesystem Context API’ni qoβ€˜llab-quvvatlamaydigan fayl tizimlarida taqdim etilgan parametrlarning maksimal hajmini toβ€˜gβ€˜ri tekshirilmaganligi tufayli yuzaga keladi. Juda katta parametrni o'tkazish yozilishi kerak bo'lgan ma'lumotlar hajmini hisoblash uchun ishlatiladigan butun o'zgaruvchining to'lib ketishiga olib kelishi mumkin - kodda "agar (len > PAGE_SIZE - 2 - o'lcham)" bufer to'lib ketish tekshiruvi mavjud bo'lsa, u ko'rsatmaydi. o'lcham qiymati 4094 dan katta bo'lsa ish. pastki chegara orqali butun sonni to'ldirish uchun (integer underflow, unsigned int ga 4096 - 2 - 4095 ni quyishda natija 2147483648).

Ushbu xato, maxsus yaratilgan fayl tizimi tasviriga kirishda, ajratilgan xotira maydonidan keyin bufer to'lib ketishiga va yadro ma'lumotlarini qayta yozishga imkon beradi. Zaiflikdan foydalanish uchun siz CAP_SYS_ADMIN huquqlariga ega bo'lishingiz kerak, ya'ni. administrator vakolatlari. Muammo shundaki, agar tizimda foydalanuvchi nomlari bo'shliqlarini qo'llab-quvvatlash yoqilgan bo'lsa, imtiyozsiz foydalanuvchi bunday ruxsatlarni izolyatsiya qilingan konteynerda olishi mumkin. Masalan, Ubuntu va Fedora-da foydalanuvchi nomlari bo'shliqlari sukut bo'yicha yoqilgan, lekin Debian va RHEL-da yoqilmagan (agar konteyner izolyatsiyasi platformalaridan foydalanilmasa).

Muammo Linux yadrosi 5.1 dan beri paydo bo'ldi va kechagi 5.16.2, 5.15.16, 5.10.93, 5.4.173 yangilanishlarida tuzatildi. Zaiflikni tuzatuvchi paket yangilanishlari allaqachon RHEL, Debian, Fedora va Ubuntu uchun chiqarilgan. Tuzatish Arch Linux, Gentoo, SUSE va openSUSE-da hali mavjud emas. Konteyner izolyatsiyasidan foydalanmaydigan tizimlar uchun xavfsizlik chorasi sifatida siz sysctl "user.max_user_namespaces" qiymatini 0 ga o'rnatishingiz mumkin: echo "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf # sysctl -p /etc/ sysctl.d/userns.conf

Manba: opennet.ru

a Izoh qo'shish