270 ہزار منصوبوں میں استعمال ہونے والے نوڈ نیٹ ماسک NPM پیکیج میں کمزوری

نوڈ-نیٹ ماسک NPM پیکیج، جس میں ہر ہفتے تقریباً 3 ملین ڈاؤن لوڈ ہوتے ہیں اور GitHub پر 270 ہزار سے زیادہ پروجیکٹس پر انحصار کے طور پر استعمال ہوتا ہے، اس میں ایک کمزوری (CVE-2021-28918) ہے جو اسے نیٹ ماسک استعمال کرنے والے چیکوں کو نظرانداز کرنے کی اجازت دیتا ہے۔ ایڈریس رینجز یا فلٹرنگ کے لیے موجودگی کا تعین کرنے کے لیے۔ مسئلہ نوڈ نیٹ ماسک 2.0.0 کے اجراء میں طے ہوا ہے۔

کمزوری یہ ممکن بناتی ہے کہ بیرونی IP ایڈریس کو اندرونی نیٹ ورک کے ایڈریس کے طور پر اور اس کے برعکس، اور SSRF (سرور سائیڈ درخواست کی جعلسازی) کو انجام دینے کے لیے ایپلی کیشن میں نوڈ-نیٹ ماسک ماڈیول استعمال کرنے کی ایک خاص منطق کے ساتھ۔ (ریموٹ فائل انکلوژن) اور LFI (مقامی فائل انکلوژن) حملے ) اندرونی نیٹ ورک پر وسائل تک رسائی حاصل کرنے اور ایگزیکیوشن چین میں بیرونی یا مقامی فائلوں کو شامل کرنے کے لیے۔ مسئلہ یہ ہے کہ تصریح کے مطابق، صفر سے شروع ہونے والی ایڈریس سٹرنگ کی قدروں کو آکٹل نمبرز سے تعبیر کیا جانا چاہیے، لیکن نوڈ نیٹ ماسک ماڈیول اسے دھیان میں نہیں لیتا اور ان کو اعشاریہ شمار کرتا ہے۔

مثال کے طور پر، ایک حملہ آور "0177.0.0.1" کی قدر بتا کر مقامی وسائل کی درخواست کر سکتا ہے، جو "127.0.0.1" کے مساوی ہے، لیکن "node-netmask" ماڈیول null کو رد کر دے گا، اور 0177.0.0.1″ کو "کے طور پر سمجھے گا۔ 177.0.0.1"، جس کی درخواست میں رسائی کے قوانین کا جائزہ لیتے وقت، "127.0.0.1" کے ساتھ شناخت کا تعین کرنا ممکن نہیں ہوگا۔ اسی طرح، حملہ آور ایڈریس "0127.0.0.1" بتا سکتا ہے، جو "87.0.0.1" سے مماثل ہونا چاہیے، لیکن "نوڈ نیٹ ماسک" ماڈیول میں اسے "127.0.0.1" سمجھا جائے گا۔ اسی طرح، آپ "012.0.0.1" ("10.0.0.1" کے برابر، لیکن چیک کے دوران 12.0.0.1 کے طور پر کارروائی کی جائے گی) جیسی اقدار کی وضاحت کرکے انٹرانیٹ ایڈریس تک رسائی کے لیے چیک کو دھوکہ دے سکتے ہیں۔

جن محققین نے اس مسئلے کی نشاندہی کی وہ اس مسئلے کو تباہ کن قرار دیتے ہیں اور حملے کے کئی منظرنامے فراہم کرتے ہیں، لیکن ان میں سے اکثر قیاس آرائی پر مبنی نظر آتے ہیں۔ مثال کے طور پر، یہ Node.js پر مبنی ایپلیکیشن پر حملہ کرنے کے امکان کے بارے میں بات کرتا ہے جو ان پٹ کی درخواست کے پیرامیٹرز یا ڈیٹا کی بنیاد پر وسائل کی درخواست کرنے کے لیے بیرونی کنکشن قائم کرتی ہے، لیکن ایپلیکیشن کا نام خاص طور پر یا تفصیلی نہیں ہے۔ یہاں تک کہ اگر آپ کو ایسی ایپلی کیشنز ملتی ہیں جو درج کردہ IP پتوں کی بنیاد پر وسائل کو لوڈ کرتی ہیں، یہ مکمل طور پر واضح نہیں ہے کہ کسی مقامی نیٹ ورک سے جڑے بغیر یا "آئینہ" IP پتوں کا کنٹرول حاصل کیے بغیر عملی طور پر کمزوری کا کیسے فائدہ اٹھایا جا سکتا ہے۔

محققین صرف یہ فرض کرتے ہیں کہ 87.0.0.1 (Telecom Italia) اور 0177.0.0.1 (Brasil Telecom) کے مالکان 127.0.0.1 تک رسائی کی پابندی کو نظرانداز کرنے کے قابل ہیں۔ ایک زیادہ حقیقت پسندانہ منظر نامہ مختلف ایپلیکیشن سائیڈ بلاک لسٹوں کو نظرانداز کرنے کے لیے کمزوری کا فائدہ اٹھانا ہے۔ NPM ماڈیول "private-ip" میں انٹرانیٹ رینجز کی تعریف کو شیئر کرنے پر بھی اس مسئلے کا اطلاق کیا جا سکتا ہے۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں