Linux yadrosidagi xavfli zaiflik: “Double-Free” xatosi orqali hujumchilar tizim huquqlarini egallamoqda

🔍 2025-yilning iyun oyida Linux yadrosida juda xavfli, «double-free» (ikki marta xotirani bo‘shatish) deb nomlanuvchi zaiflik aniqlandi. Bu zaiflik netfilter (NFT) tizimining pipapo set modulida joylashgan bo‘lib, u orqali mahalliy foydalanuvchilar (ya’ni tizimga kirish huquqiga ega shaxslar) yadro xotirasini buzib, root (eng yuqori) darajadagi huquqni qo‘lga kiritishlari mumkin.

Muammo nft_add_set_elem funksiyasidagi elem nomli uninitialized (tayinlanmagan) o‘zgaruvchi bilan bog‘liq. Agar CONFIG_INIT_STACK_ALL_ZERO opsiyasi o‘chirilgan bo‘lsa, bu o‘zgaruvchining ba’zi qismi nolga tenglashtirilmagan holda ishlov beriladi. Natijada, bu joyda ilgari ishlatilgan xotira manzillari yoki havolalar qoladi va bu orqali ikki marotaba xotira bo‘shatiladi (double-free). Bu esa yadro xotirasida bevosita yozuv (arbitrary write) imkonini beradi.

🛠️ Ekspluatatsiya usuli qanday?

Hujumchilar quyidagi bosqichlarda zaiflikdan foydalanadilar:

  1. Tuzilma yaratish: Yadroda pipapo set deb nomlangan maxsus konfiguratsiyalangan NFT jadvallar yaratiladi.
  2. Birinchi bo‘shatish: Foydalanuvchi tomonidan yuborilgan netlink xabarlari orqali elem->priv qismi birinchi marta bo‘shatiladi.
  3. Ikkinchi bo‘shatish: Barcha set o‘chiriladi va elem->priv yana bir bor bo‘shatiladi. Bu esa yadro xotirasida halokatli xatolikni yuzaga keltiradi.

Shu tarzda, hujumchi yadrodagi boshqa strukturalarni yozish yoki o‘zgartirish imkoniyatiga ega bo‘ladi, bu esa yadro darajasidagi huquqlarni qo‘lga keltiradi.

🔎 Zaiflik ta’sir doirasi

Ushbu zaiflik quyidagi Linux yadrosi versiyalarini qamrab oladi:

  • 5.6-rc1 dan 6.13-rc3 gacha bo‘lgan barcha versiyalar
  • Quyidagi yadro sozlamalari yoqilgan bo‘lishi kerak:
    • CONFIG_NETFILTER=y
    • CONFIG_NF_TABLES=y
    • CONFIG_USER_NS=y
    • CONFIG_INIT_STACK_ALL_ZERO=n

🛡️ Himoya choralari

Tizimingizni ushbu zaiflikdan himoya qilish uchun quyidagi tavsiyalar beriladi:

  1. CONFIG_INIT_STACK_ALL_ZERO opsiyasini yoqing – bu lokal o‘zgaruvchilarni avtomatik tarzda nol bilan to‘ldiradi va zararli xotira qoldiqlari muammosini bartaraf etadi.
  2. Netfilter jamoasi tomonidan chiqarilgan yadro patchini o‘rnating – bu yangilanish elem tuzilmasini to‘g‘ri boshlang‘ich qiymat bilan ta’minlaydi.
  3. Kompilyatsiya darajasida xavfsizlikni kuchaytiring – masalan, Stack Protector, KASLR va boshqa himoya mexanizmlaridan foydalanish tavsiya etiladi.

Linux yadrosida aniqlangan bu zaiflik, CVE-2023-4004 kabi oldingi yadro xatoliklariga o‘xshash bo‘lib, tizim xavfsizligini jiddiy tahdid ostiga qo‘yadi. Mahalliy foydalanuvchining oddiy imtiyozlar bilan ham yadro ustidan to‘liq nazorat o‘rnatish imkoniyatiga ega bo‘lishi, butun tizimning izdan chiqishiga olib kelishi mumkin.

Tizim administratorlari va kiberxavfsizlik muhandislari darhol mavjud yadro yangilanishlarini o‘rnatishlari va xavfsizlik konfiguratsiyalarini qayta ko‘rib chiqishlari lozim.