په ویم کې زیان منونکي چې د کوډ اجرا کولو لامل کیږي کله چې ناوړه فایل خلاصوي

په متن ایډیټورانو کې Vim и نیوویم موندل زیانمنتیا (CVE-2019-12735)، کوم چې د ځانګړي ډیزاین شوي فایل پرانیستلو پر مهال د خپل سري کوډ اجرا کولو ته اجازه ورکوي. ستونزه هغه وخت رامینځته کیږي کله چې د ډیفالټ ماډلین حالت (":سیټ ماډلین") فعال وي ، کوم چې تاسو ته اجازه درکوي په پروسس شوي فایل کې د ترمیم اختیارونه تعریف کړئ. زیانمنتیا په ریلیزونو کې ټاکل شوې
ویم 8.1.1365 и Neovim 0.3.6.

یوازې یو محدود شمیر اختیارونه د ماډلین له لارې نصب کیدی شي. که یو بیان د اختیار ارزښت په توګه مشخص شوی وي، دا د سینڈ باکس حالت کې اجرا کیږي، کوم چې یوازې ساده خوندي عملیات ته اجازه ورکوي. په دې حالت کې، معتبر کمانډ کې د ": سرچینه" کمانډ شامل دی، په کوم کې چې تاسو کولی شئ د "!" موډیفیر وکاروئ. د ټاکل شوي فایل څخه د خپل سري حکمونو چلولو لپاره. په دې توګه، د کوډ اجرا کولو لپاره، دا کافي ده چې د ماډلین لاین کې یو ساختمان په ګوته کړئ لکه "set foldexpr=execute('\:source! some_file'):". په Neovim کې، د زنګ وهلو اجرا کول منع دي، مګر assert_fails پرځای کارول کیدی شي.

د مثال په توګه، د "uname -a" کمانډ چلولو لپاره، په ساده ډول په Vim یا Neovim کې یو فایل خلاص کړئ چې لومړۍ یا وروستۍ کرښه یې وايي:

:!uname -a||» vi:fen:fdm=expr:fde=assert_fails("سرچینه\!\%"):fdl=0:fdt="

شرکت "سرچینه! %" به د اوسنۍ فایل څخه کمانډونه ولولي او په دې اساس به ":!uname -a" اجرا کړي. د تېښتې سلسلې د بلی کارونې لخوا د محصول څخه ورکړل شوې کرښه پټولو لپاره کارول کیدی شي. د بیلګې په توګه، پدې کې د پروټوټایپ ګټه پورته کړئ کله چې په ویم کې فایل خلاص کړئ ، د قرباني سیسټم ته د شیل لاسرسي سره د شبکې اتصال رامینځته کیږي ، مګر دا فایل به شک رامینځته نکړي کله چې د بلی افادیت په کارولو سره ترمینل ته تولید شي.

تاسو کولی شئ د کمانډ سره د موډلین حالت فعالیت چیک کړئ ": set modeline?". د دې غیر فعالولو لپاره ، تاسو کولی شئ vimrc ته "set nomodeline" لاین اضافه کړئ. په ویش کې ستونزه حل شوې ده RHEL, SUSE/openSUSE, فیډورا, FreeBSD, د وبنټو, آرکس لینکس и ALT. زیانمنتیا په کې پرته پاتې ده Debian (په ډیبیان ماډلین کې د ډیفالټ لخوا غیر فعال شوی ، نو زیان په ډیفالټ حالت کې نه څرګندیږي).

سرچینه: opennet.ru

Add a comment