270 ming loyihalarda foydalanilgan NPM tugun-tarmoq maskasi paketidagi zaiflik

Haftasiga 3 millionga yaqin yuklab olinadigan va GitHub’da 270 mingdan ortiq loyihalarga bog‘liqlik sifatida foydalaniladigan NPM tugun-tarmoq maskasi to‘plami tarmoq niqobidan foydalanadigan tekshiruvlarni chetlab o‘tish imkonini beruvchi zaiflikka ega (CVE-2021-28918). manzil diapazonlari yoki filtrlash uchun hodisani aniqlash. Muammo node-netmask 2.0.0 versiyasini chiqarishda hal qilindi.

Zaiflik tashqi IP-manzilni ichki tarmoq manzili sifatida ko'rib chiqishga va aksincha, SSRF (Server tomoni so'rovini qalbakilashtirish), RFI-ni amalga oshirish uchun dasturda tugun-tarmoq niqobi modulidan foydalanishning ma'lum bir mantig'i bilan ishlashga imkon beradi. (Remote File Inclusion) va LFI (Local File Inclusion) hujumlari ) ichki tarmoqdagi resurslarga kirish va tashqi yoki mahalliy fayllarni bajarish zanjiriga kiritish. Muammo shundaki, spetsifikatsiyaga ko'ra, noldan boshlanadigan manzil satri qiymatlari sakkizlik sonlar sifatida talqin qilinishi kerak, ammo tugun-tarmoq niqobi moduli buni hisobga olmaydi va ularni o'nlik sonlar sifatida ko'rib chiqadi.

Masalan, tajovuzkor “0177.0.0.1” ga mos keladigan “127.0.0.1” qiymatini ko‘rsatish orqali mahalliy resursni so‘rashi mumkin, ammo “tugun-tarmoq niqobi” moduli nullni o‘chirib tashlaydi va 0177.0.0.1”ni “” deb hisoblaydi. 177.0.0.1", bu ilovada kirish qoidalarini baholashda "127.0.0.1" bilan shaxsni aniqlash mumkin bo'lmaydi. Xuddi shunday, tajovuzkor "0127.0.0.1" manzilini ko'rsatishi mumkin, u "87.0.0.1" bilan bir xil bo'lishi kerak, ammo "tugun-tarmoq maskasi" modulida "127.0.0.1" sifatida ko'rib chiqiladi. Xuddi shunday, siz “012.0.0.1” kabi qiymatlarni belgilash orqali intranet manzillariga kirish tekshiruvini aldashingiz mumkin (“10.0.0.1” ga ekvivalent, lekin tekshirish paytida 12.0.0.1 sifatida qayta ishlanadi).

Muammoni aniqlagan tadqiqotchilar muammoni halokatli deb atashadi va bir nechta hujum stsenariylarini taqdim etadilar, ammo ularning aksariyati spekulyativ ko'rinadi. Misol uchun, u kirish so'rovining parametrlari yoki ma'lumotlari asosida resurs so'rash uchun tashqi ulanishlarni o'rnatadigan Node.js-ga asoslangan ilovaga hujum qilish imkoniyati haqida gapiradi, lekin ilova maxsus nomlanmagan yoki batafsil ko'rsatilmagan. Kiritilgan IP-manzillar asosida resurslarni yuklaydigan ilovalarni topsangiz ham, mahalliy tarmoqqa ulanmasdan yoki "oyna" IP manzillarini nazorat qilmasdan amalda zaiflikdan qanday foydalanish mumkinligi to'liq aniq emas.

Tadqiqotchilar faqat 87.0.0.1 (Telecom Italia) va 0177.0.0.1 (Brasil Telecom) egalari 127.0.0.1 ga kirish cheklovini chetlab o'tishlari mumkin, deb taxmin qilishadi. Haqiqiyroq stsenariy bu zaiflikdan foydalanib, turli xil ilovalar bloklari ro'yxatini chetlab o'tishdir. Muammoni NPM moduli "private-ip"da intranet diapazonlari ta'rifini almashish uchun ham qo'llash mumkin.

Manba: opennet.ru

a Izoh qo'shish