Vundebleco en Vim kiu kondukas al koda ekzekuto dum malfermado de malica dosiero

En tekstredaktiloj mi venis и neovim trovita vundebleco (CVE-2019-12735), kiu permesas al arbitra kodo esti efektivigita dum malfermado de speciale dizajnita dosiero. La problemo okazas kiam la defaŭlta modela reĝimo (":set modeline") estas aktiva, kio ebligas al vi difini redaktajn opciojn en la prilaborita dosiero. Vundebleco fiksita en eldonoj
Vim 8.1.1365 и Neovim 0.3.6.

Nur limigita nombro da opcioj povas esti instalita per modeline. Se esprimo estas specifita kiel opciovaloro, ĝi estas efektivigita en sandbox-reĝimo, kiu permesas nur la plej simplajn sekurajn operaciojn. En ĉi tiu kazo, la valida komando inkluzivas la komandon ":source", en kiu vi povas uzi la modifon "!". ruli arbitrajn komandojn de la specifita dosiero. Tiel, por ekzekuti la kodon, sufiĉas indiki en la modellinio konstruon kiel "set foldexpr=execute('\:source! some_file'):". En Neovim, voki execute estas malpermesita, sed assert_fails povas esti uzata anstataŭe.

Ekzemple, por ruli la komandon "uname -a", simple malfermu dosieron en Vim aŭ Neovim kies unua aŭ lasta linio diras:

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

Firmao “fonto! %" legos la komandojn el la nuna dosiero kaj sekve plenumos ":!uname -a". Fuĝsekvencoj povas esti uzitaj por kaŝi antaŭfiksitan linion de produktaĵo per la kata utileco. Ekzemple, en ĉi tio ekspluati prototipon kiam oni malfermas dosieron en vim, retkonekto estas kreita kun ŝela aliro al la sistemo de la viktimo, sed ĉi tiu dosiero ne vekos suspekton kiam eligo al la terminalo uzante la katan ilon.

Vi povas kontroli la agadon de modeline-reĝimo per la komando ":set modeline?". Por malŝalti ĝin, vi povas aldoni la linion "set nomodeline" al vimrc. En distribuoj la problemo estas fiksita en RELO, SUSE/malfermuSUSE, Fedora, FreeBSD, ubuntu, Arch Linukso и ALT. La vundebleco restas neflakita Debian (en Debian modeline estas malebligita defaŭlte, do la vundebleco ne aperas en la defaŭlta stato).

fonto: opennet.ru

Aldoni komenton