Node.js ekotizimidagi jiddiy xavf: vm2 kutubxonasidagi xavfli zaifliklar masofaviy kod bajarilishiga yo‘l ochmoqda

So‘nggi vaqtlarda kiberxavfsizlik mutaxassislari tomonidan Node.js ekotizimida keng qo‘llaniladigan vm2 kutubxonasida aniqlangan bir qator tanqidiy zaifliklar dasturchilar hamda infratuzilma administratorlari orasida jiddiy xavotir uyg‘otdi. Tadqiqotchilar ushbu kutubxonada jami 11 ta xavfli zaiflik mavjudligini ma’lum qilib, ularning aksariyati “sandbox” himoyasini chetlab o‘tish va xost tizimida ixtiyoriy buyruqlarni bajarish imkonini berishini ta’kidladi. Eng xavotirli jihati shundaki, ayrim zaifliklar hozirgacha to‘liq bartaraf etilmagan.

vm2 nima va nega u muhim?

vm2 — bu Node.js uchun yaratilgan mashhur npm kutubxonasi bo‘lib, ishonchsiz yoki tashqi manbadan kelgan JavaScript kodlarini alohida himoyalangan muhitda ishga tushirish uchun qo‘llaniladi. Mazkur texnologiya:

  • onlayn kod bajarish platformalari,
  • CI/CD tizimlari,
  • plagin mexanizmlari,
  • ko‘p foydalanuvchili bulut xizmatlari,
  • avtomatlashtirilgan test muhitlari

kabi ko‘plab tizimlarda faol ishlatiladi.

Kutubxonaning asosiy g‘oyasi oddiy: zararli kod sandbox ichida qolishi, xost tizimiga esa ta’sir o‘tkaza olmasligi kerak. Ammo aniqlangan yangi zaifliklar ushbu himoya modeli amalda yetarlicha ishonchli emasligini ko‘rsatdi.

Zaifliklarning mohiyati

Aniqlangan zaifliklarning deyarli barchasi “sandbox escape” — ya’ni himoyalangan virtual muhitdan chiqib ketish imkonini beradi. Bu esa hujumchiga:

  • xost tizimida buyruqlar bajarish,
  • server fayllariga kirish,
  • maxfiy ma’lumotlarni o‘g‘irlash,
  • boshqa xizmatlarni nazorat qilish,
  • ayrim holatlarda root huquqini qo‘lga kiritish

imkoniyatini yaratadi.

Tadqiqotchilar zaifliklarning turli mexanizmlar orqali ishlashini qayd etdi. Jumladan:

  • JavaScript prototip zanjirlarini manipulyatsiya qilish,
  • Promise obyektlaridan noto‘g‘ri foydalanish,
  • WebAssembly istisno mexanizmlarini suiiste’mol qilish,
  • Module._load() orqali cheklangan modullarni yuklash,
  • DisposableStack va SuppressedError kabi yangi imkoniyatlardan foydalanish

kabi usullar orqali himoya qatlamlari buzilgan.

Eng xavfli CVE’lar

Zaifliklar orasida ayrimlari ayniqsa xavfli deb baholanmoqda.

CVE-2026-24118

Ushbu zaiflik __lookupGetter__ mexanizmi orqali sandbox chegarasidan chiqib ketishga imkon beradi. Hujumchi xost tizimining ichki obyektlariga murojaat qilishi mumkin.

CVE-2026-24120

Promise species himoyasini chetlab o‘tuvchi ushbu zaiflik orqali child_process.execSync funksiyasi ishga tushiriladi va tizim buyruqlari bajariladi.

CVE-2026-24781

Node.js’ning util.inspect imkoniyatidan foydalanib, xost obyektlari ochib tashlanadi hamda vm2 proksi izolatsiyasi buziladi.

CVE-2026-26332

Node.js v24’da paydo bo‘lgan DisposableStack va SuppressedError mexanizmlaridan foydalanib, hujumchilar xostdagi Function obyektiga kirish imkoniga ega bo‘ladi.

CVE-2026-26956

Node.js v25 uchun aniqlangan ushbu zaiflik WebAssembly try_table instruktsiyasi orqali vm2 sanitizatsiya tizimini chetlab o‘tadi. Tadqiqotchilar ushbu usul bilan to‘liq root darajasidagi kod bajarilishini namoyish etgan.

CVE-2026-44008 va CVE-2026-44009

Eng xavfli zaifliklardan bo‘lgan ushbu ikki muammo hozircha yamalmagan. Ular massivlar (array species) va istisno mexanizmlaridan foydalanib, xost obyektlarini qayta tiklash hamda cheklanmagan Function constructor’ga kirish imkonini beradi.

Konfiguratsiyadagi xavfli xatolar

Mutaxassislar nafaqat koddagi nuqsonlar, balki noto‘g‘ri sozlamalar ham katta xavf tug‘dirishini ta’kidladi.

Xususan:

nesting: true

opsiyasi yoqilgan holatda, require: false himoyasi deyarli samarasiz bo‘lib qoladi. Natijada sandbox ichida yangi virtual muhitlar yaratilib, cheklovlar chetlab o‘tiladi.

Shuningdek:

['*', '-child_process']

kabi wildcard konfiguratsiyalar ham xavfli deb topildi. Chunki ayrim ichki modullar kutilmagan yo‘llar bilan yuklanishi mumkin.

Ta’sir doirasi

Zaifliklar vm2 kutubxonasining turli versiyalariga ta’sir qilmoqda. Ayrimlari 3.10.x versiyalarida tuzatilgan bo‘lsa-da, eng so‘nggi 3.11.1 versiyasigacha bo‘lgan tizimlarda ham yamalmagan zaifliklar mavjud.

Bu esa minglab servislar, SaaS platformalar va kod bajaruvchi tizimlar xavf ostida ekanini anglatadi.

Nima uchun bu hodisa muhim?

Mazkur voqea JavaScript asosidagi “sandbox” texnologiyalarining fundamental zaif tomonlarini yana bir bor ko‘rsatdi. Chunki vm2 sof dasturiy izolatsiyaga tayanadi. Ya’ni himoya operatsion tizim yoki yadro darajasida emas, JavaScript logikasi darajasida amalga oshiriladi.

Ammo zamonaviy JavaScript va Node.js imkoniyatlari tobora murakkablashib borayotgani sababli:

  • yangi obyektlar,
  • istisno mexanizmlari,
  • WebAssembly funksiyalari,
  • ichki modul tizimlari

kabi komponentlar orqali himoyani buzish usullari ham ko‘paymoqda.

Kiberxavfsizlik ekspertlari aynan shu sabab vm2 kabi yechimlar yuqori xavfsizlik talab qilinadigan muhitlar uchun yetarli emasligini qayd etmoqda.

Himoyalanish bo‘yicha tavsiyalar

Mutaxassislar quyidagi choralarni tavsiya qilmoqda:

1. Eng so‘nggi versiyaga yangilash

Mavjud yamalgan zaifliklardan himoyalanish uchun vm2 kutubxonasini kamida 3.11.1 versiyasigacha yangilash zarur.

2. vm2’dan voz kechishni ko‘rib chiqish

Yamalmagan zaifliklar mavjudligi sababli, ishonchsiz kod bajariladigan muhitlarda vm2’dan foydalanishni kamaytirish yoki butunlay to‘xtatish tavsiya etiladi.

3. Yadro darajasidagi izolatsiyaga o‘tish

Tadqiqotchilar quyidagi texnologiyalarni xavfsizroq muqobil sifatida tavsiya qilmoqda:

  • Docker konteynerlari,
  • gVisor,
  • Firecracker microVM,
  • Kata Containers,
  • virtual mashinalar (VM)

kabi yadro yoki gipervizor darajasidagi izolatsiya tizimlari.

4. Xavfli konfiguratsiyalardan foydalanmaslik

Quyidagilarni imkon qadar o‘chirib qo‘yish kerak:

  • nesting: true
  • wildcard built-in modullar
  • ortiqcha require ruxsatlari

5. Qo‘shimcha monitoring va audit

Serverlarda:

  • audit loglarini yoqish,
  • g‘ayrioddiy child process faoliyatini kuzatish,
  • WebAssembly ishlatilishini monitoring qilish,
  • CI/CD muhitlarini segmentatsiya qilish

ham muhim himoya choralaridan hisoblanadi.

vm2 kutubxonasida aniqlangan zaifliklar zamonaviy dasturiy izolatsiya mexanizmlarining naqadar murakkab va nozik ekanini yana bir bor namoyish etdi. Bir vaqtlar xavfsiz deb qaralgan JavaScript sandbox modeli bugungi kunda tobora ko‘proq chetlab o‘tilmoqda.

Ayniqsa, masofaviy kod bajarish (RCE) imkonini beruvchi va hali yamalmagan zaifliklarning mavjudligi tashkilotlar uchun jiddiy xavf hisoblanadi. Shu sababli, xavfsizlikka jiddiy e’tibor qaratadigan kompaniyalar endilikda faqat dasturiy cheklovlarga emas, balki yadro darajasidagi izolatsiya texnologiyalariga tayanishi zarur.

Kiberxavfsizlik sohasidagi ushbu hodisa bitta muhim haqiqatni yana bir bor eslatmoqda: “sandbox” har doim ham mutlaq xavfsizlik degani emas.