Dobësi në Vim që çon në ekzekutimin e kodit kur hapni një skedar me qëllim të keq

Në redaktorët e tekstit vrull и neovim gjetur cenueshmëria (CVE-2019-12735), i cili lejon që kodi arbitrar të ekzekutohet kur hapet një skedar i krijuar posaçërisht. Problemi ndodh kur modaliteti i paracaktuar i modelinës (“:set modeline”) është aktiv, i cili ju lejon të përcaktoni opsionet e redaktimit në skedarin e përpunuar. Dobësia e fiksuar në lëshime
Vim 8.1.1365 и Neovim 0.3.6.

Vetëm një numër i kufizuar opsionesh mund të instalohen nëpërmjet modelinës. Nëse një shprehje specifikohet si një vlerë opsioni, ajo ekzekutohet në modalitetin sandbox, i cili lejon vetëm operacionet më të thjeshta të sigurta. Në këtë rast, komanda e vlefshme përfshin komandën “:source”, në të cilën mund të përdorni modifikuesin “!”. për të ekzekutuar komanda arbitrare nga skedari i specifikuar. Kështu, për të ekzekutuar kodin, mjafton të tregohet në linjën e modelinës një konstruksion si "set foldexpr=execute('\:source! some_file'):". Në Neovim, thirrja e ekzekutimit është e ndaluar, por në vend të kësaj mund të përdoret assert_fails.

Për shembull, për të ekzekutuar komandën "uname -a", thjesht hapni një skedar në Vim ose Neovim, rreshti i parë ose i fundit i të cilit thotë:

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

Burimi i kompanisë! %" do të lexojë komandat nga skedari aktual dhe në përputhje me rrethanat do të ekzekutojë ":!uname -a". Sekuencat e arratisjes mund të përdoren për të fshehur një linjë të caktuar nga dalja nga programi cat. Për shembull, në këtë eksploat prototipi kur hapni një skedar në vim, krijohet një lidhje rrjeti me qasje shell në sistemin e viktimës, por ky skedar nuk do të ngjall dyshime kur të dalë në terminal duke përdorur programin cat.

Mund të kontrolloni aktivitetin e modalitetit modelinë me komandën “:set modeline?”. Për ta çaktivizuar atë, mund të shtoni rreshtin "set nomodeline" në vimrc. Në shpërndarje problemi zgjidhet RHEL, SUSE/openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux и ALT. Dobësia mbetet e pazgjidhur Debian (në Debian modelina është e çaktivizuar si parazgjedhje, kështu që cenueshmëria nuk shfaqet në gjendjen e paracaktuar).

Burimi: opennet.ru

Shto një koment