ʻO ka Vulnerability i Vim e alakaʻi i ka hoʻokō code i ka wā e wehe ai i kahi faila hewa

I nā mea hoʻoponopono kikokikona Vim и neovim loaa palupalu (CVE-2019-12735), ka mea e hiki ai ke hoʻokō ʻia ke code arbitrary i ka wā e wehe ai i kahi faila i hoʻolālā ʻia. Loaʻa ka pilikia i ka wā e hana ai ke ʻano hoʻohālike paʻamau (": hoʻonohonoho i ke ʻano hoʻohālikelike"), kahi e hiki ai iā ʻoe ke wehewehe i nā koho hoʻoponopono i ka faila i hana ʻia. Hoʻopaʻa ʻia ka vulnerability i nā hoʻokuʻu
ʻO Vim 8.1.1365 и Neovim 0.3.6.

Hiki ke hoʻokomo ʻia ma o modeline wale nō ka helu o nā koho. Inā hōʻike ʻia kahi ʻōlelo ma ke ʻano he koho koho, hoʻokō ʻia ia ma ke ʻano sandbox, kahi e ʻae ai i nā hana palekana maʻalahi loa. I kēia hihia, aia ke kauoha kūpono i ke kauoha ": source", kahi e hiki ai iā ʻoe ke hoʻohana i ka "!" hoʻololi. e holo i nā kauoha kūʻokoʻa mai ka faila i kuhikuhi ʻia. No laila, no ka hoʻokō ʻana i ke code, ua lawa ia e hōʻike i ka laina modeline i kahi hana e like me "set foldexr = execute ('\: source! some_file'):". Ma Neovim, pāpā ʻia ke kāhea ʻana, akā hiki ke hoʻohana ʻia ka assert_fails.

No ka laʻana, e holo i ke kauoha "uname -a", wehe wale i kahi faila ma Vim a i ʻole Neovim nona ka laina mua a hope paha i ʻōlelo ai:

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

Hui "kumu! %" e heluhelu i nā kauoha mai ka faila o kēia manawa a e hoʻokō i ":!uname -a". Hiki ke hoʻohana ʻia nā kaʻina pakele no ka hūnā ʻana i kahi laina i hāʻawi ʻia mai ka hoʻopuka ʻana e ka pono cat. Eia kekahi laʻana, ma kēia hoʻohana prototype i ka wehe ʻana i kahi faila ma vim, ua hana ʻia kahi pilina pūnaewele me ke komo ʻana i ka shell i ka ʻōnaehana o ka mea i pepehi ʻia, akā ʻaʻole e hoʻāla kēia faila i ka kānalua ke hoʻopuka ʻia i ka terminal me ka hoʻohana ʻana i ka pono cat.

Hiki iā ʻoe ke nānā i ka hana o ke ʻano hoʻohālike me ke kauoha ": hoʻonohonoho i ka modeline?". No ka hoʻopau ʻana, hiki iā ʻoe ke hoʻohui i ka laina "set nomodeline" i vimrc. Ma ka mahele ʻana ua hoʻopaʻa ʻia ka pilikia ma RHEL, SUSE/openSUSE, ʻO Fedora, FreeBSD, Ubuntu, Kūnaewele Linux и ALT. ʻAʻole i hoʻopaʻa ʻia ka vulnerability Debian (i ka Debian modeline ua pio ʻia e ka paʻamau, no laila ʻaʻole ʻike ʻia ka nāwaliwali i ka mokuʻāina paʻamau).

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka