UDP paketini yuborish orqali halokatga olib kelishi mumkin bo'lgan Linux yadrosidagi zaiflik

Linux yadrosida aniqlangan zaiflik (CVE-2019-11683), bu sizga maxsus ishlab chiqilgan UDP paketlarini (o'lim paketi) yuborish orqali masofadan turib xizmat ko'rsatishni rad etishga imkon beradi. Muammo udp_gro_receive_segment ishlov beruvchisida (net/ipv4/udp_offload.c) GRO (Generic Receive Offload) texnologiyasini amalga oshirish bilan bog‘liq xatolik tufayli yuzaga keladi va u nol to‘ldirish bilan UDP paketlarini qayta ishlashda yadro xotirasi hududlari tarkibining buzilishiga olib kelishi mumkin. (bo'sh yuk).

Muammo faqat yadroga ta'sir qiladi 5.0UDP rozetkalari uchun GRO qo'llab-quvvatlaganligi sababli amalga oshirildi o'tgan yilning noyabr oyida va faqat oxirgi barqaror yadro versiyasiga kirishga muvaffaq bo'ldi. GRO texnologiyasi bir nechta paketlarni har bir paketni alohida qayta ishlashni talab qilmaydigan kattaroq bloklarga jamlash orqali ko'p sonli kiruvchi paketlarni qayta ishlashni tezlashtirish imkonini beradi.
TCP uchun muammo yuzaga kelmaydi, chunki bu protokol foydali yuksiz paketlarni yig'ishni qo'llab-quvvatlamaydi.

Zaiflik hozircha faqat shaklda tuzatilgan yamoq, tuzatuvchi yangilanish hali chop etilmagan (kechagi yangilanish 5.0.11 tuzatish kiritilmagan). Tarqatish to'plamlaridan yadro 5.0 ni kiritishga muvaffaq bo'ldi Fedora 30, Ubuntu 19.04, Arch Linux, Gentoo va boshqa doimiy yangilanadigan tarqatishlar. Debian, Ubuntu 18.10 va undan oldingi versiyalar, RHEL/CentOS и SUSE/openSUSE muammo ta'sir qilmaydi.

Natijada muammo topildi foydalanish Google tomonidan yaratilgan avtomatlashtirilgan fuzzing test tizimi syzbot va analizator KASAN (KernelAddressSanitizer), xotira bilan ishlashda xatolarni va xotiraga noto'g'ri kirish faktlarini aniqlashga qaratilgan, masalan, bo'shatilgan xotira maydonlariga kirish va kodni bunday manipulyatsiyalar uchun mo'ljallanmagan xotira joylariga joylashtirish.

Manba: opennet.ru

a Izoh qo'shish