adịghị ike na Vim nke na-eduga na mkpochapụ koodu mgbe imepe faịlụ ọjọọ

N'ime ndị ndezi ederede Vim и neovim hụrụ adịghị ike (CVE-2019-12735), nke na-enye ohere ka emee koodu aka ike mgbe ị na-emepe faịlụ ahaziri ahazi. Nsogbu a na-eme mgbe ụdịdị ụdịdị nke ndabara (":set modeline") na-arụ ọrụ, nke na-enye gị ohere ịkọwa nhọrọ edezi na faịlụ edoziri. Edobere adịghị ike na mwepụta
Vim 8.1.1365 и Neovim 0.3.6.

Naanị ọnụọgụ nhọrọ nwere ike ịwụnye site na modeline. Ọ bụrụ na akọwapụtara okwu dị ka uru nhọrọ, a na-eme ya na ọnọdụ sandbox, nke na-enye ohere naanị ọrụ nchekwa dị mfe. N'okwu a, iwu dị irè gụnyere iwu ": source", nke ị nwere ike iji "mgbanwe". iji mee iwu aka ike site na faịlụ akọwapụtara. Ya mere, iji mebie koodu ahụ, ọ ga-ezuru igosi n'ahịrị modeline ihe owuwu dịka "set foldexpr=execute('\:source! some_file'):". Na Neovim, amachibidoro ịkpọ igbu egbu, mana enwere ike iji assert_fails kama.

Dịka ọmụmaatụ, iji mee iwu "name -a", mepee faịlụ na Vim ma ọ bụ Neovim nke ahịrị mbụ ma ọ bụ ikpeazụ kwuru:

:!uname -a||" vi:fen:fdm=expr:fde=assert_fails(“isi iyi!\%”):fdl=0:fdt=”

Ụlọ ọrụ "isi iyi! %" ga-agụ iwu ndị a sitere na faịlụ dị ugbu a wee mebie":!uname -a". Enwere ike iji usoro mgbapụ zoo ahịrị enyere site na mmepụta nke akụrụngwa pusi. Dịka ọmụmaatụ, na nke a erigbu prototype mgbe ị na-emepe faịlụ na vim, a na-emepụta njikọ netwọk site na ịnweta shei na sistemụ onye ahụ, mana faịlụ a agaghị eme ka enyo enyo mgbe a na-emepụta ya na njedebe site na iji putility.

Ị nwere ike ịlele ọrụ nke ụdịdị modeline site na iwu ":set modeline?". Iji gbanyụọ ya, ịnwere ike ịgbakwunye ahịrị "set nomodeline" na vimrc. Na nkesa a na-edozi nsogbu ahụ RHEL, SUSE/mepeeSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux и ALT. A ka na-edobe adịghị ike ahụ Debian (na Debian modeline nwere nkwarụ site na ndabara, yabụ adịghị ike ahụ anaghị apụta na steeti ndabara).

isi: opennet.ru

Tinye a comment