مسئلہ
string_interpret_escape() کو کال کرنے والا کوڈ اصل سائز کی بنیاد پر ڈرین کے لیے ایک بفر مختص کرتا ہے، اور بے نقاب پوائنٹر بفر کی حدود سے باہر کے علاقے میں ختم ہوتا ہے۔ اس کے مطابق، ان پٹ سٹرنگ کو پروسیس کرنے کی کوشش کرتے وقت، مختص کردہ بفر کی حدود سے باہر کسی علاقے سے ڈیٹا پڑھتے وقت ایک صورت حال پیدا ہوتی ہے، اور ایک غیر محفوظ اسٹرنگ کو لکھنے کی کوشش بفر کی حدود سے باہر لکھنے کا باعث بن سکتی ہے۔
ڈیفالٹ کنفیگریشن میں، سرور سے محفوظ کنکشن قائم کرتے وقت SNI کو خصوصی طور پر ڈیزائن کردہ ڈیٹا بھیج کر کمزوری کا فائدہ اٹھایا جا سکتا ہے۔ کلائنٹ سرٹیفکیٹ کی توثیق کے لیے تشکیل کردہ کنفیگریشنز میں peerdn اقدار میں ترمیم کرکے یا سرٹیفکیٹس درآمد کرتے وقت بھی مسئلہ کا فائدہ اٹھایا جاسکتا ہے۔ SNI اور peerdn کے ذریعے حملہ ریلیز سے ہی ممکن ہے۔
Glibc کے ساتھ لینکس سسٹمز پر i386 اور amd64 آرکیٹیکچرز پر چلنے والے SNI کے ذریعے حملے کے لیے ایک ایکسپلائٹ پروٹو ٹائپ تیار کیا گیا ہے۔ ایکسپلائٹ ہیپ ایریا پر ڈیٹا اوورلے کا استعمال کرتا ہے، جس کے نتیجے میں اس میموری کو اوور رائٹ کیا جاتا ہے جس میں لاگ فائل کا نام محفوظ ہوتا ہے۔ فائل کا نام "/../.../../../../../../../etc/passwd" سے بدل دیا گیا ہے۔ اس کے بعد، بھیجنے والے کے ایڈریس کے ساتھ متغیر کو اوور رائٹ کیا جاتا ہے، جو پہلے لاگ میں محفوظ ہوتا ہے، جو آپ کو سسٹم میں ایک نیا صارف شامل کرنے کی اجازت دیتا ہے۔
ڈسٹری بیوشنز کے ذریعے جاری کردہ خطرے سے متعلق اصلاحات کے ساتھ پیکیج اپ ڈیٹس
خطرے کو روکنے کے لیے ایک حل کے طور پر، آپ TLS سپورٹ کو غیر فعال یا شامل کر سکتے ہیں۔
ACL سیکشن "acl_smtp_mail":
انکار شرط = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
انکار شرط = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}
ماخذ: opennet.ru