Ukuba sesichengeni kwiVim okukhokelela ekuqhutyweni kwekhowudi xa uvula ifayile enobungozi

Kubahleli bombhalo vΓ­m ΠΈ neovim ifunyenwe ukuba sesichengeni (I-CVE-2019-12735), evumela ikhowudi engafanelekanga ukuba iqhutywe xa uvula ifayile eyilwe ngokukodwa. Ingxaki yenzeka xa imowudi yemodeli engagqibekanga (":seta imodeli") iyasebenza, ekuvumela ukuba uchaze iinketho zokuhlela kwifayile ehlaziyiweyo. Ubuthathaka bulungisiwe kukhupho
Vim 8.1.1365 ΠΈ I-Neovim 0.3.6.

Kuphela linani eliqingqiweyo leenketho ezinokufakwa ngemodeli. Ukuba intetho ixelwe njengexabiso lokukhetha, lenziwa kwimo yebhokisi yesanti, evumela kuphela eyona misebenzi ilula ekhuselekileyo. Kule meko, umyalelo osebenzayo uquka ": umthombo" umyalelo, apho ungasebenzisa isilungisi "!" ukwenza imiyalelo engafanelekanga kwifayile ekhankanyiweyo. Ngaloo ndlela, ukwenza ikhowudi, kwanele ukubonisa kumgca wemodeli ulwakhiwo olufana ne "set foldexpr=execute('\:source! some_file'):". Kwi-Neovim, ukufowuna ukuphumeza akuvumelekanga, kodwa i-assert_fails ingasetyenziswa endaweni yoko.

Umzekelo, ukwenza umyalelo othi "uname -a", vula ngokulula ifayile kwiVim okanye iNeovim onomgca wokuqala okanye wokugqibela othi:

:!uname -a||Β» vi:fen:fdm=expr:fde=assert_fails(β€œumthombo\!\ \%”):fdl=0:fdt=”

Inkampani "umthombo! %" izakufunda imiyalelo kwifayile yangoku kwaye ngokunjalo iphumeze ":!uname -a". Ulandelelwano lwe-Escape lungasetyenziselwa ukufihla umgca onikiweyo kwimveliso yi-cat utility. Umzekelo, kule nto sebenzisa iprototype xa uvula ifayile kwi-vim, uxhulumaniso lwenethiwekhi lwenziwa ngofikelelo lweqokobhe kwinkqubo yexhoba, kodwa le fayile ayizukuvusa urhano xa imveliso iphuma kwi-terminal isebenzisa usetyenziso lwekati.

Ungajonga umsebenzi wemowudi yemodeli ngomyalelo ": seta imodeli?". Ukuyikhubaza, unokongeza umgca "seta i-nomodeline" kwi-vimrc. Kusasazo ingxaki ilungisiwe RHEL, SUSE/openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux ΠΈ ALT. Ukuba semngciphekweni kuhlala kungachazwanga Debian (kwimodeli yeDebian ivaliwe ngokungagqibekanga, ngoko ke ubuthathaka bungabonakali kwimeko engagqibekanga).

umthombo: opennet.ru

Yongeza izimvo