Ang pagkahuyang sa Vim nga nagdala sa pagpatuman sa code kung nagbukas sa usa ka malisyoso nga file

Sa mga text editor Vim и neovim nakit-an pagkahuyang (CVE-2019-12735), nga nagtugot sa arbitraryong code nga ipatuman kung magbukas sa usa ka espesyal nga gidisenyo nga file. Ang problema mahitabo kung ang default modeline mode (": set modeline") aktibo, nga nagtugot kanimo sa paghubit sa mga opsyon sa pag-edit sa giproseso nga file. Ang pagkahuyang naayo sa mga pagpagawas
Vim 8.1.1365 и Neovim 0.3.6.

Limitado ra nga gidaghanon sa mga kapilian ang ma-install pinaagi sa modeline. Kung ang usa ka ekspresyon gipiho isip usa ka kapilian nga kantidad, kini gipatuman sa sandbox mode, nga nagtugot lamang sa pinakasimple nga luwas nga mga operasyon. Niini nga kaso, ang balido nga sugo naglakip sa ": tinubdan" nga sugo, diin mahimo nimong gamiton ang "!" modifier. sa pagpadagan sa arbitraryong mga sugo gikan sa gipiho nga file. Busa, aron ipatuman ang code, igo na nga ipakita sa linya sa modelo ang usa ka konstruksyon sama sa "set foldexpr=execute('\:source! some_file'):". Sa Neovim, ang pagtawag sa execute gidili, apan ang assert_fails mahimong gamiton sa baylo.

Pananglitan, aron ipadagan ang "uname -a" nga mando, ablihi lang ang usa ka file sa Vim o Neovim kansang una o katapusan nga linya nag-ingon:

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

Kompanya “tinubdan! %" mobasa sa mga sugo gikan sa kasamtangang payl ug sa ingon ipatuman ang ":!uname -a". Ang mga han-ay sa pag-ikyas mahimong gamiton aron itago ang gihatag nga linya gikan sa output sa cat utility. Pananglitan, niini pahimuslan ang prototype sa pag-abli sa usa ka file sa vim, usa ka koneksyon sa network gihimo uban sa shell access sa sistema sa biktima, apan kini nga file dili makapukaw sa katahap sa diha nga output ngadto sa terminal sa paggamit sa cat utility.

Mahimo nimong susihon ang kalihokan sa modeline mode gamit ang command ": set modeline?". Aron ma-disable kini, mahimo nimong idugang ang linya nga "set nomodeline" sa vimrc. Sa mga pag-apod-apod ang problema naayo sa RHEL, SUSE/openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux и ALT. Ang pagkahuyang nagpabilin nga wala mabutang Debian (sa Debian modeline kay disabled by default, mao nga ang vulnerability dili makita sa default state).

Source: opennet.ru

Idugang sa usa ka comment