Vilnerabilite nan Vim ki mennen nan ekzekisyon kòd lè ouvè yon fichye move

Nan editè tèks Vim и neovim jwenn vilnerabilite (CVE-2019-12735), ki pèmèt kòd abitrè yo dwe egzekite lè w ap louvri yon dosye ki fèt espesyalman. Pwoblèm nan rive lè mòd modeline default (":set modeline") aktif, ki pèmèt ou defini opsyon koreksyon nan dosye trete a. Vilnerabilite fiks nan degaje yo
Vim 8.1.1365 и Neovim 0.3.6.

Sèlman yon kantite limite nan opsyon ka enstale atravè modeline. Si yo espesifye yon ekspresyon kòm yon valè opsyon, li egzekite nan mòd sandbox, ki pèmèt sèlman operasyon ki pi senp yo san danje. Nan ka sa a, kòmandman ki valab la gen ladan kòmand ":source", kote ou ka itilize "!" kouri kòmandman abitrè ki soti nan dosye a espesifye. Kidonk, pou egzekite kòd la, li ase pou endike nan liy modèl la yon konstriksyon tankou "set foldexpr=execute('\:source! some_file'):". Nan Neovim, rele egzekite entèdi, men assert_fails ka itilize pito.

Pa egzanp, pou w kouri kòmandman "uname -a", tou senpleman louvri yon fichye nan Vim oswa Neovim ki gen premye oswa dènye liy ki di:

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

Konpayi "sous! %" pral li kòmandman ki soti nan dosye aktyèl la epi kòmsadwa egzekite ":!uname -a". Sekans chape ka itilize pou kache yon liy bay soti nan pwodiksyon pa sèvis piblik chat la. Pou egzanp, nan sa a eksplwate pwototip lè w ap louvri yon dosye nan vim, yon koneksyon rezo kreye ak aksè koki nan sistèm viktim nan, men fichye sa a pa pral leve sispèk lè pwodiksyon nan tèminal la lè l sèvi avèk sèvis piblik chat la.

Ou ka tcheke aktivite mòd modeline ak lòd ":set modeline?". Pou enfim li, ou ka ajoute liy "set nomodeline" nan vimrc. Nan distribisyon pwoblèm nan fikse nan rhel, SUSE/openSUSE, Feutr, FreeBSD, Ubentu, Arch Linux и ALT. Vilnerabilite a rete san patch nan dbyan (nan Debian modeline enfim pa default, kidonk vilnerabilite a pa parèt nan eta default la).

Sous: opennet.ru

Add nouvo kòmantè