Netflix اور Google کے محققین HTTP/2 پروٹوکول کے مختلف نفاذ میں آٹھ کمزوریاں موجود ہیں جو نیٹ ورک کی درخواستوں کے خصوصی طور پر تیار کردہ سلسلے کو بھیجنے کی وجہ سے سروس سے انکار کی اجازت دیتی ہیں۔ یہ مسائل زیادہ تر HTTP/2- فعال HTTP سرورز کو مختلف ڈگریوں تک متاثر کرتے ہیں اور اس کے نتیجے میں کارکن کے عمل کے لیے دستیاب میموری ختم ہو جاتی ہے یا ضرورت سے زیادہ CPU بوجھ ہوتا ہے۔ کمزوریوں کو دور کرنے کے لیے اپ ڈیٹس پہلے ہی جاری کی جا چکی ہیں۔ и ، لیکن ابھی کے لیے اپاچی httpd کے لیے اور .
مسائل HTTP/2 پروٹوکول میں متعارف ہونے والی پیچیدگیوں سے پیدا ہوئے، بشمول بائنری ڈھانچے کا استعمال، کنکشن کے اندر ڈیٹا فلو کو محدود کرنے کا نظام، بہاؤ کو ترجیح دینے کا طریقہ کار، اور HTTP/2 کنکشن کی سطح پر کام کرنے والے ICMP جیسے کنٹرول پیغامات کی موجودگی (مثال کے طور پر، پنگ، ری سیٹ، اور فلو سیٹ اپ آپریشن)۔ بہت سے نفاذ نے کنٹرول پیغامات کے بہاؤ کو مناسب طریقے سے محدود نہیں کیا، درخواستوں پر کارروائی کرتے وقت ترجیحی قطار کو غیر موثر طریقے سے منظم کیا، یا بہاؤ کنٹرول الگورتھم کے ذیلی بہترین نفاذ کا استعمال کیا۔
زیادہ تر شناخت شدہ حملے کے طریقوں میں سرور کو مخصوص درخواستیں بھیجنا شامل ہے، جس سے جوابات کی ایک بڑی تعداد پیدا ہوتی ہے۔ اگر کلائنٹ ساکٹ سے ڈیٹا نہیں پڑھتا ہے اور کنکشن بند نہیں کرتا ہے، تو سرور سائیڈ رسپانس بفرنگ قطار مسلسل بھرتی رہتی ہے۔ یہ رویہ نیٹ ورک کنکشن کیو مینجمنٹ سسٹم پر دباؤ ڈالتا ہے اور نفاذ پر منحصر ہے، دستیاب میموری یا CPU وسائل کی تھکن کا باعث بنتا ہے۔
شناخت شدہ خطرات:
- CVE-2019-9511 (ڈیٹا ڈرائبل) - ایک حملہ آور سلائیڈنگ ونڈو کے سائز اور دھاگے کی ترجیح میں ہیرا پھیری کرکے متعدد تھریڈز میں ڈیٹا کی ایک بڑی مقدار کی درخواست کرتا ہے، سرور کو 1-بائٹ بلاکس میں ڈیٹا کی قطار لگانے پر مجبور کرتا ہے۔
- CVE-2019-9512 (پنگ فلڈ) - ایک حملہ آور HTTP/2 کنکشن پر پنگ پیغامات کو مسلسل زہر دیتا ہے، جس کی وجہ سے دوسری طرف سے بھیجے گئے جوابات کی اندرونی قطار بھر جاتی ہے۔
- CVE-2019-9513 (Resource Loop) - ایک حملہ آور متعدد درخواست کے تھریڈز بناتا ہے اور دھاگے کی ترجیح کو مسلسل تبدیل کرتا ہے، جس کی وجہ سے ترجیحی درخت گڑبڑ ہو جاتا ہے۔
- CVE-2019-9514 (ری سیٹ فلڈ) - حملہ آور متعدد تھریڈز بناتا ہے
اور ہر تھریڈ کے ذریعے ایک غلط درخواست بھیجتا ہے، جس کی وجہ سے سرور RST_STREAM فریم بھیجتا ہے، لیکن جوابی قطار کو بھرنے کے لیے انہیں قبول نہیں کرتا ہے۔ - CVE-2019-9515 (سیٹنگز فلڈ) - ایک حملہ آور خالی "SETTINGS" فریموں کا ایک سلسلہ بھیجتا ہے، جس کے جواب میں سرور کو ہر درخواست کی وصولی کو تسلیم کرنے کی ضرورت ہوتی ہے۔
- CVE-2019-9516 (0-لمبائی ہیڈرز لیک) - ایک حملہ آور صفر نام اور صفر قدر کے ساتھ ہیڈرز کا ایک سلسلہ بھیجتا ہے، اور سرور ہر ہیڈر کو ذخیرہ کرنے کے لیے میموری میں ایک بفر مختص کرتا ہے اور سیشن ختم ہونے تک اسے خالی نہیں کرتا ہے۔
- CVE-2019-9517 (اندرونی ڈیٹا بفرنگ) - حملہ آور کھل گیا
HTTP/2 سرور کو لامحدود ڈیٹا بھیجنے کی اجازت دینے کے لیے ایک سلائیڈنگ ونڈو کا استعمال کرتا ہے، لیکن یہ TCP ونڈو کو بھی بند رکھتا ہے، ڈیٹا کو حقیقت میں ساکٹ میں لکھے جانے سے روکتا ہے۔ حملہ آور پھر ایسی درخواستیں بھیجتا ہے جن کے لیے بڑے ردعمل کی ضرورت ہوتی ہے۔ - CVE-2019-9518 (خالی فریم فلڈ) – ایک حملہ آور ڈیٹا، ہیڈرز، کنٹینویشن، یا PUSH_PROMISE اقسام کے فریموں کا ایک سلسلہ بھیجتا ہے، لیکن ایک خالی پے لوڈ کے ساتھ اور کوئی سلسلہ ختم کرنے کا جھنڈا نہیں ہے۔ سرور حملہ آور کی بینڈوڈتھ کی کھپت کے لیے غیر متناسب ہر فریم پر کارروائی کرنے میں وقت صرف کرتا ہے۔
ماخذ: opennet.ru
