Tizimdagi fayllarni qayta yozishga olib keladigan NPMdagi zaiflik

GitHub tar va @npmcli/arborist paketlaridagi yetti zaiflik tafsilotlarini oshkor qildi, ular tar arxivlari bilan ishlash va Node.js’dagi qaramlik daraxtini hisoblash funksiyalarini ta’minlaydi. Zaifliklar, maxsus mo'ljallangan arxivni ochishda, joriy kirish huquqlari imkoni bo'lsa, ochish amalga oshiriladigan asosiy katalogdan tashqaridagi fayllarni qayta yozishga imkon beradi. Muammolar tizimda ixtiyoriy kodning bajarilishini tashkil qilish imkonini beradi, masalan, ~/.bashrc yoki ~/.profile ga buyruqlar qo'shish, agar imtiyozga ega bo'lmagan foydalanuvchi tomonidan operatsiya bajarilganda yoki tizim fayllari sifatida ishlayotganda tizim fayllarini almashtirish orqali. ildiz.

Zaifliklar xavfi npm paketlar menejerida npm paketlar bilan operatsiyalarni amalga oshirishda muammoli koddan foydalanilganligi bilan kuchayadi, bu esa omborga maxsus ishlab chiqilgan npm paketini joylashtirish, qayta ishlash orqali foydalanuvchilarga hujumni tashkil qilish imkonini beradi. shundan tizimdagi tajovuzkor kodini bajaradi. Hujum paketlarni "-ignore-scripts" rejimida o'rnatishda ham mumkin, bu esa o'rnatilgan skriptlarning bajarilishini o'chirib qo'yadi. Hammasi bo'lib, npm ettitadan to'rtta zaiflikka ta'sir qiladi (CVE-2021-32804, CVE-2021-37713, CVE-2021-39134 va CVE-2021-39135). Birinchi ikkita muammo tar paketiga, qolgan ikkitasi esa @npmcli/arborist paketiga tegishli.

Eng xavfli zaiflik, CVE-2021-32804, tar arxivida ko'rsatilgan mutlaq yo'llarni tozalashda takroriy "/" belgilar noto'g'ri ishlov berilishi bilan bog'liq - faqat birinchi belgi o'chiriladi, qolganlari esa qoladi. Masalan, "/home/user/.bashrc" yo'li "home/user/.bashrc" ga va "//home/user/.bashrc" yo'li "/home/user/.bashrc" ga aylantiriladi. Ikkinchi zaiflik, CVE-2021-37713, faqat Windows platformasida paydo bo'ladi va cheklanmagan disk belgisi ("C: some\path") va oldingi katalogga qaytish ketma-ketligini o'z ichiga olgan nisbiy yo'llarni noto'g'ri tozalash bilan bog'liq ( "C:../foo").

CVE-2021-39134 va CVE-2021-39135 zaifliklar @npmcli/arborist moduliga xosdir. Birinchi muammo faqat fayl tizimidagi belgilar registrini ajratmaydigan tizimlarda paydo bo'ladi (macOS va Windows) va sizga bog'liqliklar orasida ikkita "foo" modulini ko'rsatish orqali fayl tizimining ixtiyoriy qismiga fayllar yozish imkonini beradi. : "file:/some/path"' va ' FOO: "file:foo.tgz"', ularni qayta ishlash /some/path katalogi mazmunini o'chirishga va unga foo.tgz mazmunini yozishga olib keladi. Ikkinchi muammo fayllarni ramziy havola manipulyatsiyasi orqali qayta yozish imkonini beradi.

Zaifliklar Node.js 12.22.6 va 14.17.6, npm CLI 6.14.15 va 7.21.0 va individual tar paketi 4.4.19, 5.0.11 va 6.1.10 relizlarida hal qilingan. "Bug bounty" tashabbusi doirasida muammo haqida ma'lumot olgandan so'ng, GitHub tadqiqotchilarga 14500 XNUMX dollar to'ladi va zaifliklardan foydalanishga urinishlarni aniqlamagan ombor tarkibini skanerdan o'tkazdi. Ushbu muammolardan himoya qilish uchun GitHub shuningdek, ramziy havolalar, qattiq havolalar va omborga mutlaq yo'llarni o'z ichiga olgan NPM paketlarini nashr qilishni taqiqladi.

Manba: opennet.ru

a Izoh qo'shish