ويم ۾ ڪمزوري ڪوڊ جي عمل جي ڪري ٿي جڏهن هڪ خراب فائل کوليو ويندو آهي

ٽيڪسٽ ايڊيٽرن ۾ Vim и نوووم مليو ڪمزوري (CVE-2019-12735)، جيڪو خاص طور تي ٺهيل فائل کي کولڻ وقت صوابديدي ڪوڊ تي عمل ڪرڻ جي اجازت ڏئي ٿو. مسئلو تڏهن ٿئي ٿو جڏهن ڊفالٽ ماڊل موڊ (“:set modeline”) چالو آهي، جيڪو توهان کي پروسيس ٿيل فائل ۾ ايڊيٽنگ جا اختيار بيان ڪرڻ جي اجازت ڏئي ٿو. رليز ۾ مقرر ٿيل نقصان
ويم 8.1.1365 и نيوويم 0.3.6.

صرف اختيارن جو محدود تعداد ماڊلين ذريعي نصب ٿي سگھي ٿو. جيڪڏهن هڪ اظهار هڪ اختياري قدر جي طور تي بيان ڪيو ويو آهي، اهو سينڊ باڪس موڊ ۾ عمل ڪيو ويندو آهي، جيڪو صرف آسان ترين محفوظ عملن جي اجازت ڏئي ٿو. انهي حالت ۾، صحيح حڪم ۾ شامل آهي ": ذريعو" حڪم، جنهن ۾ توهان استعمال ڪري سگهو ٿا "!" موڊيفائر. مخصوص فائل مان صوابديدي حڪمن کي هلائڻ لاء. اهڙيء طرح، ڪوڊ تي عمل ڪرڻ لاء، اهو ڪافي آهي ته ماڊل لائن ۾ هڪ تعمير جو اشارو ڪيو وڃي جيئن "set foldexpr=execute('\:source! some_file'):". Neovim ۾، ڪالنگ execute منع ٿيل آهي، پر assert_fails بدران استعمال ڪري سگھجن ٿا.

مثال طور، "uname -a" حڪم هلائڻ لاء، صرف Vim يا Neovim ۾ هڪ فائل کوليو جنهن جي پهرين يا آخري لائن چوي ٿو:

:!uname -a||» vi:fen:fdm=expr:fde=asssert_fails(“ذريعو\!\%”):fdl=0:fdt=”

ڪمپني ”ذريعو! %" موجوده فائل مان ڪمانڊ پڙهندو ۽ ان جي مطابق ":!uname -a" تي عمل ڪندو. Escape sequences استعمال ڪري سگھجن ٿا هڪ ڏنل لڪير کي لڪائڻ لاءِ ڪيٽ يوٽيليٽي طرفان آئوٽ پٽ. مثال طور، هن ۾ prototype جو استحصال جڏهن vim ۾ فائل کوليو ويندو آهي، هڪ نيٽ ورڪ ڪنيڪشن ٺاهي ويندي آهي شيل جي رسائي سان قرباني جي سسٽم تائين، پر هي فائل شڪ پيدا نه ڪندي جڏهن ٽرمينل ڏانهن ٻاھر ڪڍڻ واري ڪيٽ يوٽيليٽي استعمال ڪندي.

توھان ڪمانڊ سان ماڊلين موڊ جي سرگرمي کي چيڪ ڪري سگھو ٿا ": set modeline?". ان کي غير فعال ڪرڻ لاء، توهان لائن شامل ڪري سگهو ٿا "سيٽ nomodeline" vimrc ڏانهن. تقسيم ۾، مسئلو حل ڪيو ويو آهي رڇيل, SUSE/اوپن سوس, بيدل, FreeBSD, Ubuntu, آرڪيڪس لينڪس и ALT. اندر ۾ ڪمزوري اڻڄاڻ رهي ٿي ديبين (ڊيبين ماڊلين ۾ ڊفالٽ طور تي بند ٿيل آهي، تنهنڪري نقصان ڊفالٽ رياست ۾ ظاهر نٿو ٿئي).

جو ذريعو: opennet.ru

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