لينڪس مائيٽ ۽ ايليمينٽري او ايس کي متاثر ڪندي سوڊو روٽ جي ڪمزوري

افاديت ۾ sudo، ٻين استعمال ڪندڙن جي طرفان حڪمن جي عمل کي منظم ڪرڻ لاءِ استعمال ڪيو ويو، سڃاڻپ ڪمزوري (CVE-2019-18634)، جيڪو توهان کي سسٽم ۾ توهان جي استحقاق کي روٽ استعمال ڪندڙ کي وڌائڻ جي اجازت ڏئي ٿو. مسئلو صرف sudo 1.7.1 جي ڇڏڻ کان پوء ظاهر ٿئي ٿو جڏهن "pwfeedback" اختيار استعمال ڪندي /etc/sudoers فائل ۾، جيڪو ڊفالٽ طور تي غير فعال آهي پر ڪجهه تقسيم تي فعال آهي جهڙوڪ Linux Mint ۽ Elementary OS. رليز ۾ مقرر ٿيل مسئلو سودو 1.8.31، ڪجھ ڪلاڪ اڳ شايع ٿيل. ورهائڻ واري ڪٽ ۾ ڪمزوري اڻٽر رهي ٿي.

"pwfeedback" اختيار هر داخل ٿيل ڪردار کان پوء "*" ڪردار جي ڊسپلي کي فعال ڪري ٿو جڏهن پاسورڊ داخل ڪيو وڃي. جي ڪري غلطيون getln() فنڪشن جي عمل ۾، tgetpass.c فائل ۾ وضاحت ڪئي وئي آهي، هڪ تمام وڏو پاسورڊ اسٽرنگ جيڪو معياري ان پٽ اسٽريم (stdin) ذريعي گذري ٿو ڪجهه شرطن تحت مختص ٿيل بفر ۾ مناسب نه ٿي سگھي ۽ اسٽيڪ تي ٻين ڊيٽا کي اوور رائٽ ڪري. اوور فلو ٿئي ٿو جڏهن سوڊو ڪوڊ کي روٽ طور هلائي رهيو آهي.

مسئلي جو خلاصو اهو آهي ته جڏهن انپٽ دوران خاص ڪردار ^U (لائن ڪليئرنگ) استعمال ڪيو وڃي ۽ جيڪڏهن لکڻ جو عمل ناڪام ٿئي، ته ڪوڊ آئوٽ پُٽ “*” اکرن کي صاف ڪرڻ جو ذميوار موجود بفر سائيز تي ڊيٽا کي ري سيٽ ڪري ٿو، پر ائين نٿو ٿئي. پوائنٽر کي بفر ۾ شروعاتي قدر موجوده پوزيشن ڏانھن واپس آڻيو. استحصال ۾ حصو وٺندڙ هڪ ٻيو عنصر ”pwfeedback“ موڊ جي پاڻمرادو غير فعال ٿيڻ جو فقدان آهي جڏهن ڊيٽا ٽرمينل کان نه، پر ان پٽ اسٽريم ذريعي اچي ٿي (هي خامي رڪارڊنگ جي غلطي لاءِ حالتون پيدا ڪرڻ جي اجازت ڏئي ٿي، مثال طور، سسٽم تي. اڻ سڌي اڻ ڄاتل چينلز هڪ غلطي ٿيندي آهي جڏهن پڙهڻ واري چينل جي آخر ۾ لکڻ جي ڪوشش ڪندي).

جيئن ته هڪ حملي آور کي اسٽيڪ تي ڊيٽا کي اوور رائٽنگ ڪرڻ تي مڪمل ڪنٽرول حاصل آهي، اهو هڪ استحصال پيدا ڪرڻ ڏکيو ناهي جيڪو هن کي پنهنجي استحقاق کي روٽ ڪرڻ جي اجازت ڏئي ٿو. مسئلو ڪنهن به صارف طرفان استحصال ڪري سگهجي ٿو، سودو اجازتن جي بغير يا sudoers ۾ صارف جي مخصوص سيٽنگون. مسئلو کي بلاڪ ڪرڻ لاء، توهان کي پڪ ڪرڻ گهرجي ته ڪو به "pwfeedback" سيٽنگ نه آهي /etc/sudoers ۽، جيڪڏهن ضروري هجي ته، ان کي بند ڪريو ("Defaults ! pwfeedback"). چيڪ ڪرڻ لاء جيڪڏهن ڪو مسئلو آهي، توهان ڪوڊ هلائي سگهو ٿا:

$ perl -e 'پرنٽ(("A" x 100 . "\x{00}") x 50)' | sudo -S id
پاسورڊ: ڀاڱيداري غلطي

جو ذريعو: opennet.ru

تبصرو شامل ڪريو