Yadro ichida bajariladigan kuzatish, quyi tizim ishlashini tahlil qilish va trafikni boshqarish uchun ishlov beruvchilarni ishga tushirish imkonini beruvchi eBPF quyi tizimida Linux JIT bilan ishlaydigan maxsus virtual mashinada zaiflik (CVE-2021-29154) aniqlandi, bu mahalliy foydalanuvchiga o'z kodini yadro darajasida bajarishga imkon beradi. Muammo 5.11.12 versiyasigacha davom etadi va distributivlarda hali tuzatilmagan (Debian, Ubuntu, RHEL, Fedora, SUSE, Arch). Tuzatish yamoq sifatida mavjud.
Zaiflikni aniqlagan tadqiqotchilarning so'zlariga ko'ra, ular imtiyozsiz foydalanuvchi tomonidan ishlatilishi mumkin bo'lgan 32 va 64 bitli x86 tizimlari uchun ishlaydigan eksploit prototipini ishlab chiqdilar. Red Hat muammoning jiddiyligi foydalanuvchining eBPF tizim chaqiruviga kirish huquqiga ega bo'lishiga bog'liqligini ta'kidlaydi. Masalan, RHEL va boshqa ko'pgina distributivlarda Linux Standart konfiguratsiyada, agar BPF JIT yoqilgan bo'lsa va foydalanuvchi CAP_SYS_ADMIN imtiyozlariga ega bo'lsa, zaiflikdan foydalanish mumkin. Vaqtinchalik yechim sifatida BPF JIT ni quyidagi buyruq yordamida o'chirib qo'yish tavsiya etiladi: echo 0 > /proc/sys/net/core/bpf_jit_enable
Muammo JIT kompilyatorining mashina kodini yaratish jarayonida filial ko'rsatmalari uchun ofsetni hisoblashda xatolik tufayli yuzaga keladi. Xususan, filial ko'rsatmalarini yaratishda optimallashtirish bosqichidan o'tgandan keyin ofset o'zgarishi mumkinligini hisobga olmaydi. Ushbu kamchilik anomal mashina kodini yaratish va uni yadro darajasida bajarish uchun ishlatilishi mumkin.
Shunisi e'tiborga loyiqki, bu yaqinda eBPF quyi tizimidagi yagona zaiflik emas. Mart oyi oxirida yadroda (CVE-2020-27170, CVE-2020-27171) yana ikkita zaiflik aniqlandi, bu esa yadro xotirasi tarkibini aniqlash imkonini beruvchi Spectre sinfidagi zaifliklardan himoyani chetlab o'tish uchun eBPF-dan foydalanish imkonini beradi. muayyan operatsiyalarni spekulyativ bajarish uchun sharoit yaratish natijasida. Spectre hujumi imtiyozli kodda buyruqlarning spekulyativ bajarilishiga olib keladigan ma'lum buyruqlar ketma-ketligi mavjudligini talab qiladi. eBPF-da, bajarish uchun uzatilgan BPF dasturlari bilan manipulyatsiyalar orqali bunday ko'rsatmalarni yaratishning bir necha usullari topilgan.
CVE-2020-27170 zaifligi BPF tekshiruvchisida ko'rsatkich manipulyatsiyalari natijasida yuzaga keladi, bu esa spekulyativ chegaradan tashqariga kirishlarga olib keladi. CVE-2020-27171 zaifligi ko'rsatkichlarni qayta ishlashda butun sonli oqim xatosi bilan bog'liq bo'lib, bu esa spekulyativ chegaradan tashqariga kirishlarga olib keladi. Bu muammolar allaqachon 5.11.8, 5.10.25, 5.4.107, 4.19.182 va 4.14.227 yadro versiyalarida hal qilingan va ko'pgina distributivlar uchun yadro yangilanishlariga ham kiritilgan. LinuxTadqiqotchilar imtiyozsiz foydalanuvchiga yadro xotirasidan ma'lumotlarni ajratib olish imkonini beruvchi ekspluatatsiya prototipini ishlab chiqdilar.
Manba: opennet.ru
