ایگزم میں نازک کمزوری جو کوڈ کو روٹ مراعات کے ساتھ سرور پر عمل میں لانے کی اجازت دیتا ہے

ایگزم میل سرور میں شناخت کیا تنقیدی کمزوری (CVE-2019-10149)، جو خاص طور پر تیار کردہ درخواست پر کارروائی کرتے وقت روٹ رائٹس کے ساتھ سرور پر ریموٹ کوڈ کے نفاذ کا باعث بن سکتا ہے۔ 4.87 سے 4.91 تک کے ورژن میں یا EXPERIMENTAL_EVENT آپشن کے ساتھ تعمیر کرتے وقت مسئلہ کے استحصال کے امکان کو نوٹ کیا گیا تھا۔

پہلے سے طے شدہ ترتیب میں، حملہ مقامی صارف کے ذریعے غیر ضروری پیچیدگیوں کے بغیر کیا جا سکتا ہے، کیونکہ "تصدیق = وصول کنندہ" ACL لاگو ہوتا ہے، جو بیرونی پتوں کے لیے اضافی چیک کرتا ہے۔ ریموٹ حملہ اس وقت ہوسکتا ہے جب ترتیبات تبدیل کی جاتی ہیں، جیسے کہ کسی دوسرے ڈومین کے لیے سیکنڈری MX کے طور پر کام کرنا، "verify=recipient" ACL کو ہٹانا، یا local_part_suffix میں کچھ تبدیلیاں)۔ ریموٹ حملہ بھی ممکن ہے اگر حملہ آور سرور سے کنکشن کو 7 دنوں تک کھلا رکھنے کے قابل ہو (مثال کے طور پر، ٹائم آؤٹ کو نظرانداز کرنے کے لیے ایک بائٹ فی منٹ بھیجنا)۔ ایک ہی وقت میں، یہ ممکن ہے کہ مسئلہ کے دور دراز استحصال کے لیے آسان حملہ کرنے والے ویکٹر ہوں۔

نقصان پہنچانے والے کے ایڈریس کی غلط تصدیق کی وجہ سے ہے ڈیلیور_میسیج() فنکشن جو /src/deliver.c فائل میں بیان کیا گیا ہے۔ ایڈریس فارمیٹنگ میں ہیرا پھیری کرکے، ایک حملہ آور اپنے ڈیٹا کو روٹ رائٹس کے ساتھ execv() فنکشن کے ذریعے بلائے جانے والے کمانڈ کے دلائل میں تبدیل کر سکتا ہے۔ آپریشن کے لیے بفر اوور فلو یا میموری کی خرابی کے لیے استعمال ہونے والی پیچیدہ تکنیکوں کے استعمال کی ضرورت نہیں ہے؛ سادہ کردار کا متبادل کافی ہے۔

مسئلہ ایڈریس کی تبدیلی کے لیے تعمیر کے استعمال سے متعلق ہے:

ڈیلیور_لوکل پارٹ = توسیع_سٹرنگ (
string_sprintf("${local_part:%s}", new->address));
ڈیلیور_ڈومین = توسیع_سٹرنگ (
string_sprintf("${domain:%s}", new->address));

expand_string() فنکشن ایک زیادہ پیچیدہ کمبینر ہے، جس میں کمانڈ "${run{command arguments}" کو تسلیم کرنا شامل ہے، جو ایک بیرونی ہینڈلر کے آغاز کا باعث بنتا ہے۔ اس طرح، SMTP سیشن کے اندر حملہ کرنے کے لیے، ایک مقامی صارف کو صرف 'RCPT TO "username+${run{...}}@localhost"' جیسی کمانڈ بھیجنے کی ضرورت ہوتی ہے، جہاں لوکل ہوسٹ لوکل ڈومینز کی فہرست میں سے ایک میزبان ہے، اور صارف نام موجودہ مقامی صارف کا نام ہے۔

اگر سرور میل ریلے کے طور پر کام کرتا ہے، تو دور سے کمانڈ 'RCPT کو "${run{...}}@relaydomain.com" بھیجنا کافی ہے، جہاں relaydomain.com relay_to_domains میں درج میزبانوں میں سے ایک ہے۔ ترتیبات سیکشن. چونکہ Exim استحقاق کے موڈ کو چھوڑنے کے لیے ڈیفالٹ نہیں ہوتا ہے (deliver_drop_privilege = false)، "${run{...}}" کے ذریعے پاس کردہ کمانڈز کو روٹ کے طور پر عمل میں لایا جائے گا۔

یہ قابل ذکر ہے کہ کمزوری تھی ختم کر دیا فروری میں جاری کردہ 4.92 ریلیز میں، اس بات پر زور دیئے بغیر کہ درستگی سیکیورٹی کے مسائل کا باعث بن سکتی ہے۔ اس بات پر یقین کرنے کی کوئی وجہ نہیں ہے کہ ایگزم ڈویلپرز کی جانب سے جان بوجھ کر اس خطرے کو چھپایا گیا تھا، کیونکہ مسئلہ اس دوران حل کیا گیا تھا۔ اصلاحات ناکامی جو اس وقت ہوتی ہے جب غلط پتے منتقل ہوتے ہیں، اور ایگزم میں تبدیلیوں کے آڈٹ کے دوران Qualys کی طرف سے خطرے کی نشاندہی کی گئی تھی۔

پچھلے ورژنز کے لیے ایک فکس جو ڈسٹری بیوشنز میں استعمال ہوتے رہتے ہیں فی الحال صرف بطور دستیاب ہے۔ پیچ. مسئلہ کو حل کرنے کے لیے پچھلی برانچوں کے لیے اصلاحی ریلیز 11 جون کو ہونے والی ہیں۔ پیکیج اپ ڈیٹس کے لیے تیار ہیں۔ Debian, اوبنٹو, کھلی سوسائٹی. آرک لینکس и Fedora وہ ورژن 4.92 فراہم کرتے ہیں، جس میں مسئلہ ظاہر نہیں ہوتا ہے۔ RHEL اور CentOS کا مسئلہ حساس نہیںچونکہ Exim ان کے باقاعدہ پیکیج ریپوزٹری میں شامل نہیں ہے۔

ماخذ: opennet.ru

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