qmail میل سرور میں دور سے فائدہ اٹھانے والا خطرہ

Qualis سے سیکورٹی محققین دکھایا موقع آپریٹنگ qmail میل سرور میں کمزوریاں، مشہور 2005 (CVE-2005-1513) میں واپس آیا، لیکن اس کا پیچھا نہیں کیا گیا کیونکہ qmail کے مصنف نے استدلال کیا کہ کام کرنے والے استحصال کو تخلیق کرنا غیر حقیقی تھا جسے ڈیفالٹ کنفیگریشن میں سسٹمز پر حملہ کرنے کے لیے استعمال کیا جا سکتا تھا۔ Qualys ایک ایسا استحصال تیار کرنے کے قابل تھا جو اس مفروضے کی تردید کرتا ہے اور کسی کو خصوصی طور پر ڈیزائن کردہ پیغام بھیج کر سرور پر ریموٹ کوڈ پر عمل درآمد شروع کرنے کی اجازت دیتا ہے۔

مسئلہ straloc_readyplus() فنکشن میں انٹیجر اوور فلو کی وجہ سے ہوتا ہے، جو کسی بہت بڑے میسج پر کارروائی کرتے وقت ہو سکتا ہے۔ آپریشن کے لیے 64GB سے زیادہ ورچوئل میموری والا 4 بٹ سسٹم درکار ہے۔ 2005 میں جب کمزوری کا اصل میں تجزیہ کیا گیا تھا، ڈینیئل جے برنسٹین نے دلیل دی کہ کوڈ میں یہ مفروضہ کہ مختص سرنی کا سائز ہمیشہ 32 بٹ ویلیو کے اندر ہوتا ہے اس حقیقت پر مبنی ہے کہ کوئی بھی ہر عمل کو گیگا بائٹس میموری فراہم نہیں کرتا ہے۔ پچھلے 15 سالوں میں، سرورز پر 64 بٹ سسٹمز نے 32 بٹ سسٹمز کی جگہ لے لی ہے، اور فراہم کردہ میموری اور نیٹ ورک بینڈوتھ کی مقدار میں ڈرامائی طور پر اضافہ ہوا ہے۔

qmail پیکیج مینٹینرز نے برنسٹین کے نوٹ کو مدنظر رکھا اور qmail-smtpd عمل شروع کرتے وقت دستیاب میموری کو محدود کر دیا (مثال کے طور پر، Debian 10 میں حد 7MB پر رکھی گئی ہے)۔ لیکن Qualys کے انجینئرز نے پایا کہ یہ کافی نہیں ہے اور، qmail-smtpd کے علاوہ، qmail-local پروسیس پر ایک ریموٹ حملہ کیا جا سکتا ہے، جو تمام ٹیسٹ شدہ پیکجوں میں غیر محدود رہا۔ ثبوت کے طور پر، ایک ایکسپلوئٹ پروٹو ٹائپ تیار کیا گیا تھا جو ڈیبیان پیکیج پر ڈیفالٹ کنفیگریشن میں qmail کے ساتھ حملہ کرنے کے لیے موزوں تھا۔
حملے کے دوران ریموٹ کوڈ کے عمل کو منظم کرنے کے لیے، سرور کو 4GB مفت ڈسک کی جگہ اور 8GB RAM کی ضرورت ہوتی ہے۔
استحصال آپ کو سسٹم میں کسی بھی صارف کے حقوق کے ساتھ کسی بھی شیل کمانڈ کو چلانے کی اجازت دیتا ہے، سوائے روٹ اور سسٹم صارفین کے جن کے پاس "/home" ڈائرکٹری میں اپنی ذیلی ڈائرکٹری نہیں ہے (qmail-local عمل حقوق کے ساتھ شروع کیا گیا ہے۔ مقامی صارف کا جس کو ڈیلیوری کی جاتی ہے)۔

حملہ کیا جاتا ہے۔
ایک بہت بڑا میل پیغام بھیجنے کے ذریعے، جس میں کئی ہیڈر لائنیں شامل ہیں، جس کی پیمائش تقریباً 4GB اور 576MB ہے۔ مقامی صارف کو پیغام پہنچانے کی کوشش کرتے وقت qmail-local میں ایسی سٹرنگ کو پروسیس کرنے سے انٹیجر اوور فلو ہوتا ہے۔ اعداد و شمار کو کاپی کرنے اور libc کوڈ کے ساتھ میموری کے صفحات کو اوور رائٹ کرنے کے امکان کے بعد ایک انٹیجر اوور فلو بفر اوور فلو کی طرف جاتا ہے۔ منتقل شدہ ڈیٹا کی ترتیب کو جوڑ کر، "اوپن()" فنکشن کے ایڈریس کو دوبارہ لکھنا بھی ممکن ہے، اسے "سسٹم()" فنکشن کے ایڈریس سے بدل دیا جائے۔

اس کے بعد، qmail-local میں qmesearch() کو کال کرنے کے عمل میں، فائل ".qmail-extension" کو open() فنکشن کے ذریعے کھولا جاتا ہے، جو فنکشن کی اصل تکمیل کا باعث بنتا ہے۔
سسٹم("qmail-extension")۔ لیکن چونکہ فائل کا "ایکسٹینشن" حصہ وصول کنندہ کے پتے کی بنیاد پر تیار ہوتا ہے (مثال کے طور پر، "localuser-extension@localdomain")، حملہ آور صارف "localuser-;command کی وضاحت کرکے کمانڈ کو چلانے کے لیے بھیجے جانے کا بندوبست کر سکتے ہیں۔ ;@localdomain" پیغام کے وصول کنندہ کے بطور۔

کوڈ کے تجزیہ کے دوران، اضافی qmail-verify پیچ میں دو کمزوریوں کی بھی نشاندہی کی گئی، جو Debian کے لیے پیکج کا حصہ ہے۔ پہلا خطرہ (CVE-2020-3811) آپ کو ای میل ایڈریس کی تصدیق کو نظرانداز کرنے کی اجازت دیتا ہے، اور دوسرا (CVE-2020-3812) مقامی معلومات کے رساو کی طرف جاتا ہے۔ خاص طور پر، پہلی کمزوری آپ کو کمانڈ بھیجنے کے لیے استعمال کیے گئے ایڈریس کی درستگی کی توثیق کو نظرانداز کرنے کی اجازت دیتی ہے (تصدیق ڈومین کے بغیر پتوں کے لیے کام نہیں کرتی، جیسے "localuser-;command؛")۔ دوسری کمزوری کا استعمال سسٹم پر فائلوں اور ڈائریکٹریز کی موجودگی کو چیک کرنے کے لیے کیا جا سکتا ہے، بشمول وہ جو صرف روٹ تک رسائی کے قابل ہیں (qmail-verify run root rights کے ساتھ)، مقامی ہینڈلر کو براہ راست کال کے ذریعے۔

مسئلہ کو حل کرنے کے لیے، برنسٹین نے تجویز کی کہ دستیاب میموری کی کل حد ("softlimit -m12345678") کے ساتھ qmail پراسیسز چلانے کی سفارش کی، اس صورت میں مسئلہ مسدود ہے۔ تحفظ کے متبادل طریقہ کے طور پر، "کنٹرول/ڈیٹا بائٹس" فائل کے ذریعے پروسیس شدہ پیغام کے زیادہ سے زیادہ سائز کو محدود کرنے کا بھی ذکر کیا گیا ہے (بطور ڈیفالٹ سیٹنگز کے ساتھ یہ نہیں بنایا گیا ہے qmail کمزور رہتا ہے)۔ مزید برآں، "کنٹرول/ڈیٹا بائٹس" سسٹم کے استعمال کنندگان کے مقامی حملوں سے حفاظت نہیں کرتا، کیونکہ حد کو صرف qmail-smtpd کے حساب سے لیا جاتا ہے۔

مسئلہ پیکیج کو متاثر کرتا ہے۔ netqmail، ڈیبین ریپوزٹریز میں شامل ہے۔ اس پیکج کے لیے پیچ کا ایک سیٹ تیار کیا گیا ہے، 2005 سے پرانی کمزوریوں کو ختم کرتے ہوئے (aloc() فنکشن کوڈ میں ہارڈ میموری کی حدیں شامل کرکے) اور qmail-verify میں نئے مسائل۔ الگ الگ تیار qmail-verify پیچ کا تازہ ترین ورژن۔ ڈویلپرز شاخیں notqmail پرانے مسائل کو روکنے کے لیے اپنے پیچ تیار کیے، اور کوڈ میں تمام ممکنہ انٹیجر اوور فلو کو ختم کرنے کے لیے بھی کام شروع کر دیا۔

ماخذ: opennet.ru

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