Veikleiki í Vim sem leiðir til keyrslu kóða þegar illgjarn skrá er opnuð

Í textaritlum Vim и neovim Fundið varnarleysi (CVE-2019-12735), sem gerir kleift að keyra handahófskenndan kóða þegar sérhönnuð skrá er opnuð. Vandamálið kemur upp þegar sjálfgefin módelhamur (":set modeline") er virk, sem gerir þér kleift að skilgreina klippivalkosti í unnin skrá. Varnarleysi lagað í útgáfum
Vim 8.1.1365 и Neovim 0.3.6.

Aðeins er hægt að setja takmarkaðan fjölda valkosta upp með módellínu. Ef tjáning er tilgreind sem valmöguleikagildi er hún keyrð í sandkassaham, sem leyfir aðeins einföldustu öruggu aðgerðir. Í þessu tilviki inniheldur gild skipun ":source" skipunina, þar sem þú getur notað "!" breytileikann. til að keyra handahófskenndar skipanir úr tilgreindri skrá. Þannig að til að keyra kóðann er nóg að gefa til kynna í módellínunni byggingu eins og "set foldexpr=execute('\:source! some_file'):". Í Neovim er bannað að kalla execute, en assert_fails er hægt að nota í staðinn.

Til dæmis, til að keyra „uname -a“ skipunina, opnaðu einfaldlega skrá í Vim eða Neovim þar sem fyrsta eða síðasta línan segir:

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

Fyrirtæki „heimild! %" mun lesa skipanirnar úr núverandi skrá og í samræmi við það framkvæma ":!uname -a". Hægt er að nota Escape raðir til að fela tiltekna línu fyrir framleiðslu kattaforritsins. Til dæmis í þessu nýta frumgerð þegar skrá er opnuð í vim er nettenging búin til með skeljaaðgangi að kerfi fórnarlambsins, en þessi skrá mun ekki vekja grunsemdir þegar hún er send út í flugstöðina með því að nota kattaforritið.

Þú getur athugað virkni módelhams með skipuninni ":setja modeline?". Til að slökkva á því geturðu bætt línunni „set nomodeline“ við vimrc. Í dreifingum er vandamálið lagað í RHEL, SUSE/openSUSE, Fedora, FreeBSD, ubuntu, Arch Linux и ALT. Varnarleysið er enn óuppfært Debian (í Debian líkaninu er sjálfgefið óvirkt, þannig að varnarleysið birtist ekki í sjálfgefnu ástandi).

Heimild: opennet.ru

Bæta við athugasemd