270 layihədə istifadə edilən qovşaq-şəbəkə maskası NPM paketində zəiflik

Həftədə təxminən 3 milyon endirmə olan və GitHub-da 270 mindən çox layihədən asılı olaraq istifadə edilən node-netmask NPM paketində şəbəkə maskasından istifadə edən yoxlamaları keçməyə imkan verən zəiflik (CVE-2021-28918) var. ünvan diapazonlarının baş verməsini müəyyən etmək və ya filtrasiya üçün. Problem node-netmask 2.0.0 buraxılışında həll edildi.

Zəiflik xarici IP ünvanını daxili şəbəkədən və əksinə, SSRF (Server tərəfi sorğu saxtakarlığı), RFI həyata keçirmək üçün tətbiqdə node-şəbəkə maskası modulundan istifadənin müəyyən məntiqi ilə işləməyə imkan verir. (Remote File Inclusion) və LFI (Local File Inclusion) hücumları ) daxili şəbəkədəki resurslara daxil olmaq və xarici və ya yerli faylları icra zəncirinə daxil etmək. Problem ondadır ki, spesifikasiyaya görə, sıfırla başlayan ünvan sətirinin dəyərləri səkkizlik ədədlər kimi şərh edilməlidir, lakin node-netmask modulu bunu nəzərə almır və onları onluq ədədlər kimi qəbul edir.

Məsələn, təcavüzkar "0177.0.0.1"-ə uyğun gələn "127.0.0.1" dəyərini göstərərək yerli resurs tələb edə bilər, lakin "qovşaq-şəbəkə maskası" modulu nulldan imtina edəcək və 0177.0.0.1" kimi davranacaq. 177.0.0.1", tətbiqdə giriş qaydalarını qiymətləndirərkən şəxsiyyəti "127.0.0.1" ilə müəyyən etmək mümkün olmayacaq. Eynilə, təcavüzkar “0127.0.0.1” ünvanını təyin edə bilər, bu ünvan “87.0.0.1” ilə eyni olmalıdır, lakin “qovşaq-şəbəkə maskası” modulunda “127.0.0.1” kimi qəbul ediləcək. Eynilə, siz “012.0.0.1” kimi dəyərləri (“10.0.0.1”ə bərabərdir, lakin yoxlama zamanı 12.0.0.1 kimi işlənəcək) göstərərək, intranet ünvanlarına daxil olmaq üçün çeki aldada bilərsiniz.

Problemi müəyyən edən tədqiqatçılar problemi fəlakətli adlandırırlar və bir neçə hücum ssenarisi təqdim edirlər, lakin onların əksəriyyəti spekulyativ görünür. Məsələn, daxiletmə sorğusunun parametrləri və ya verilənləri əsasında resurs tələb etmək üçün xarici əlaqələr quran Node.js əsaslı proqrama hücumun mümkünlüyündən bəhs edir, lakin proqram xüsusi olaraq adlandırılmır və təfərrüatlı deyil. Daxil edilmiş IP ünvanları əsasında resursları yükləyən proqramlar tapsanız belə, yerli şəbəkəyə qoşulmadan və ya “güzgü” IP ünvanlarına nəzarəti əldə etmədən zəifliyin praktikada necə istifadə oluna biləcəyi tam aydın deyil.

Tədqiqatçılar yalnız güman edirlər ki, 87.0.0.1 (Telecom Italia) və 0177.0.0.1 (Brasil Telecom) sahibləri 127.0.0.1-ə giriş məhdudiyyətindən yan keçə bilərlər. Daha real ssenari, müxtəlif tətbiq tərəfi blok siyahılarını yan keçmək üçün zəiflikdən istifadə etməkdir. Məsələ həmçinin NPM modulunda "private-ip" intranet diapazonlarının tərifinin paylaşılmasına da aid edilə bilər.

Mənbə: opennet.ru

Добавить комментарий