رسٹ اور گو زبانوں کی نیٹ ورک لائبریریوں میں کمزوری جو آپ کو آئی پی ایڈریس کی تصدیق کو نظرانداز کرنے کی اجازت دیتی ہے۔

ایڈریس پارسنگ فنکشنز میں آکٹل ہندسوں کے ساتھ آئی پی ایڈریس کی غلط پروسیسنگ سے متعلق کمزوریوں کی شناخت زنگ اور گو زبانوں کی معیاری لائبریریوں میں کی گئی ہے۔ کمزوریاں ایپلی کیشنز میں درست پتوں کی جانچ کو نظرانداز کرنا ممکن بناتی ہیں، مثال کے طور پر، SSRF (سرور سائیڈ ریکوسٹ جعل سازی) کے حملے کرتے وقت لوپ بیک انٹرفیس ایڈریس (127.xxx) یا انٹرانیٹ سب نیٹس تک رسائی کو منظم کرنا۔ کمزوریاں ان مسائل کے چکر کو جاری رکھتی ہیں جن کی پہلے لائبریریوں میں نشاندہی کی گئی تھی node-netmask (JavaScript, CVE-2021-28918, CVE-2021-29418), نجی-ip (JavaScript, CVE-2020-28360), ipaddress (CVE-2021) 29921-2021 )، ڈیٹا::Validate::IP (Perl, CVE-29662-2021) اور Net::Netmask (Perl, CVE-29424-XNUMX)۔

تصریح کے مطابق، صفر سے شروع ہونے والی IP ایڈریس سٹرنگ کی قدروں کو آکٹل نمبرز سے تعبیر کیا جانا چاہیے، لیکن بہت سی لائبریریاں اس کو مدنظر نہیں رکھتیں اور صرف صفر کو رد کر دیتی ہیں، قدر کو اعشاریہ نمبر کے طور پر سمجھتی ہیں۔ مثال کے طور پر، آکٹل میں نمبر 0177 اعشاریہ میں 127 کے برابر ہے۔ ایک حملہ آور "0177.0.0.1" کی قدر بتا کر وسائل کی درخواست کر سکتا ہے، جو اعشاریہ اشارے میں "127.0.0.1" کے مساوی ہے۔ اگر پریشانی والی لائبریری کا استعمال کیا جاتا ہے، تو ایپلیکیشن کو پتہ نہیں چلے گا کہ ایڈریس 0177.0.0.1 سب نیٹ 127.0.0.1/8 میں ہے، لیکن درحقیقت، درخواست بھیجتے وقت، یہ پتہ "0177.0.0.1" تک رسائی حاصل کر سکتا ہے، جو نیٹ ورک کے افعال 127.0.0.1 کے طور پر کارروائی کریں گے۔ اسی طرح، آپ "012.0.0.1" ("10.0.0.1" کے مساوی) جیسی اقدار کی وضاحت کرکے انٹرانیٹ ایڈریس تک رسائی کی جانچ کو دھوکہ دے سکتے ہیں۔

زنگ میں، معیاری لائبریری "std::net" ایک مسئلہ (CVE-2021-29922) سے متاثر ہوئی تھی۔ اس لائبریری کے آئی پی ایڈریس پارسر نے ایڈریس میں موجود اقدار سے پہلے صفر کو رد کر دیا، لیکن صرف اس صورت میں جب تین ہندسوں سے زیادہ کی وضاحت نہ کی گئی ہو، مثال کے طور پر، "0177.0.0.1" کو غلط قدر سمجھا جائے گا، اور ایک غلط نتیجہ 010.8.8.8 اور 127.0.026.1 کے جواب میں واپس کیا جائے گا۔ وہ ایپلیکیشنز جو std::net::IpAddr استعمال کرتی ہیں جب صارف کے مخصوص ایڈریسز کو پارس کرتی ہیں SSRF (سرور سائیڈ ریکوسٹ جعل سازی)، RFI (ریموٹ فائل انکلوژن) اور LFI (لوکل فائل انکلوژن) حملوں کے لیے ممکنہ طور پر حساس ہیں۔ رسٹ 1.53.0 برانچ میں خطرے کو طے کیا گیا تھا۔

رسٹ اور گو زبانوں کی نیٹ ورک لائبریریوں میں کمزوری جو آپ کو آئی پی ایڈریس کی تصدیق کو نظرانداز کرنے کی اجازت دیتی ہے۔

گو میں، معیاری لائبریری "نیٹ" متاثر ہوتی ہے (CVE-2021-29923)۔ net.ParseCIDR بلٹ ​​ان فنکشن آکٹل نمبروں سے پہلے زیرو کو پروسیس کرنے کے بجائے چھوڑ دیتا ہے۔ مثال کے طور پر، ایک حملہ آور قدر 00000177.0.0.1 پاس کر سکتا ہے، جسے، جب نیٹ میں چیک کیا جاتا ہے۔ParseCIDR(00000177.0.0.1/24) فنکشن کو 177.0.0.1/24 کے طور پر پارس کیا جائے گا، نہ کہ 127.0.0.1/24۔ مسئلہ Kubernetes پلیٹ فارم میں بھی ظاہر ہوتا ہے۔ گو ریلیز 1.16.3 اور بیٹا 1.17 میں خطرے کو طے کیا گیا ہے۔

رسٹ اور گو زبانوں کی نیٹ ورک لائبریریوں میں کمزوری جو آپ کو آئی پی ایڈریس کی تصدیق کو نظرانداز کرنے کی اجازت دیتی ہے۔


ماخذ: opennet.ru

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