Patched Exim - دوبارہ پیچ۔ ایک درخواست میں Exim 4.92 میں تازہ ریموٹ کمانڈ کا عمل

Patched Exim - دوبارہ پیچ۔ ایک درخواست میں Exim 4.92 میں تازہ ریموٹ کمانڈ کا عمل

ابھی حال ہی میں، ابتدائی موسم گرما میں، CVE-4.92-2019 کے خطرے کی وجہ سے ایگزم کو ورژن 10149 میں اپ ڈیٹ کرنے کے لیے بڑے پیمانے پر کالیں کی گئیں۔فوری طور پر Exim کو 4.92 پر اپ ڈیٹ کریں - ایک فعال انفیکشن ہے / Sudo Null IT News)۔ اور حال ہی میں یہ پتہ چلا کہ Sustes میلویئر نے اس خطرے سے فائدہ اٹھانے کا فیصلہ کیا ہے۔

اب وہ تمام لوگ جنہوں نے فوری طور پر اپ ڈیٹ کیا وہ دوبارہ "خوشی" کر سکتے ہیں: 21 جولائی 2019 کو، محقق زیرون نے TLS استعمال کرتے وقت ایگزم میل ٹرانسفر ایجنٹ (MTA) سے ورژن کے لیے 4.80 4.92.1 اپ شامل، ریموٹ کی اجازت دیتا ہے۔ مراعات یافتہ حقوق کے ساتھ کوڈ پر عمل کریں۔ (CVE-2019-15846).

کمزوری

محفوظ TLS کنکشن قائم کرتے وقت GnuTLS اور OpenSSL لائبریریوں کا استعمال کرتے وقت خطرہ موجود ہوتا ہے۔

ڈویلپر Heiko Schlittermann کے مطابق، Exim میں کنفیگریشن فائل ڈیفالٹ کے طور پر TLS کا استعمال نہیں کرتی ہے، لیکن بہت سی ڈسٹری بیوشنز انسٹالیشن کے دوران ضروری سرٹیفکیٹ بناتی ہیں اور ایک محفوظ کنکشن کو فعال کرتی ہیں۔ ایگزم کے نئے ورژن بھی آپشن انسٹال کرتے ہیں۔ tls_advertise_hosts=* اور ضروری سرٹیفکیٹ تیار کریں۔

ترتیب پر منحصر ہے. زیادہ تر ڈسٹروز اسے بطور ڈیفالٹ فعال کرتے ہیں، لیکن Exim کو TLS سرور کے طور پر کام کرنے کے لیے ایک سرٹیفکیٹ+کی کی ضرورت ہوتی ہے۔ شاید ڈسٹروس سیٹ اپ کے دوران ایک سرٹیفکیٹ بناتے ہیں۔ نئے Exims میں tls_advertise_hosts آپشن ہوتا ہے جو ڈیفالٹ ہوتا ہے "*" اور خود دستخط شدہ سرٹیفکیٹ بنائیں، اگر کوئی فراہم نہیں کیا جاتا ہے۔

خطرہ خود SNI کی غلط پروسیسنگ میں مضمر ہے (سرور نیم اشارے، ایک ٹیکنالوجی جو 2003 میں RFC 3546 میں متعارف کرائی گئی تھی، ایک کلائنٹ کو ڈومین نام کے لیے درست سرٹیفکیٹ کی درخواست کرنے کے لیے، TLS SNI معیاری / WEBO گروپ بلاگ / Sudo Null IT News کی تقسیم) TLS مصافحہ کے دوران۔ ایک حملہ آور کو صرف ایک SNI بھیجنے کی ضرورت ہوتی ہے جس کا اختتام بیک سلیش ("") اور ایک کالعدم کریکٹر ("") ہوتا ہے۔

Qualys کے محققین نے string_printing(tls_in.sni) فنکشن میں ایک بگ دریافت کیا ہے، جس میں "" کا غلط نکلنا شامل ہے۔ نتیجے کے طور پر، بیک سلیش کو پرنٹ سپول ہیڈر فائل میں غیر محفوظ لکھا جاتا ہے۔ اس فائل کو پھر مراعات یافتہ حقوق کے ساتھ spool_read_header() فنکشن کے ذریعے پڑھا جاتا ہے، جس سے ہیپ اوور فلو ہوتا ہے۔

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

Qualys کی طرف سے مزید تفصیلی مطالعہ پایا جا سکتا ہے۔ یہاں.

Patched Exim - دوبارہ پیچ۔ ایک درخواست میں Exim 4.92 میں تازہ ریموٹ کمانڈ کا عمل

TLS میں SNI کا استعمال

ممکنہ طور پر کمزور عوامی سرورز کی تعداد

ایک بڑے ہوسٹنگ فراہم کنندہ کے اعدادوشمار کے مطابق E-soft Inc 1 ستمبر تک، کرائے کے سرورز پر، ورژن 4.92 70% سے زیادہ میزبانوں میں استعمال ہوتا ہے۔

ورژن
سرورز کی تعداد
فیصد

4.92.1
6471
1.28٪

4.92
376436
74.22٪

4.91
58179
11.47٪

4.9
5732
1.13٪

4.89
10700
2.11٪

4.87
14177
2.80٪

4.84
9937
1.96٪

دوسرے ورژن
25568
5.04٪

E-Soft Inc کمپنی کے اعدادوشمار

اگر آپ سرچ انجن استعمال کرتے ہیں۔ شوان، پھر سرور ڈیٹا بیس میں 5,250,000 میں سے:

  • تقریباً 3,500,000 Exim 4.92 استعمال کرتے ہیں (تقریباً 1,380,000 SSL/TLS استعمال کرتے ہوئے)؛
  • 74,000 کا استعمال کرتے ہوئے 4.92.1 سے زیادہ (تقریباً 25,000 SSL/TLS استعمال کرتے ہوئے)۔

اس طرح، عوامی طور پر معروف اور قابل رسائی Exim ممکنہ طور پر کمزور سرورز کے بارے میں نمبر 1.5M.

Patched Exim - دوبارہ پیچ۔ ایک درخواست میں Exim 4.92 میں تازہ ریموٹ کمانڈ کا عمل

شوڈن میں ایگزم سرورز تلاش کریں۔

تحفظ

  • سب سے آسان، لیکن تجویز کردہ نہیں، اختیار یہ ہے کہ TLS کا استعمال نہ کریں، جس کے نتیجے میں ای میل پیغامات واضح طور پر آگے بھیجے جائیں گے۔
  • کمزوری کے استحصال سے بچنے کے لیے، ورژن کو اپ ڈیٹ کرنا زیادہ بہتر ہوگا۔ Exim Internet Mailer 4.92.2.
  • اگر پیچ شدہ ورژن کو اپ ڈیٹ یا انسٹال کرنا ناممکن ہے، تو آپ اختیار کے لیے Exim کنفیگریشن میں ACL سیٹ کر سکتے ہیں۔ acl_smtp_mail مندرجہ ذیل قوانین کے ساتھ:
    # to be prepended to your mail acl (the ACL referenced
    # by the acl_smtp_mail main config option)
    deny    condition = ${if eq{}{${substr{-1}{1}{$tls_in_sni}}}}
    deny    condition = ${if eq{}{${substr{-1}{1}{$tls_in_peerdn}}}}

ماخذ: www.habr.com

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