Zraniteľnosť vo Vime, ktorá vedie k spusteniu kódu pri otvorení škodlivého súboru

V textových editoroch elán и Neovia nájdených zraniteľnosť (CVE-2019 12735,), ktorý umožňuje spustenie ľubovoľného kódu pri otvorení špeciálne navrhnutého súboru. Problém nastáva, keď je aktívny predvolený režim modeliny („:set modeline“), ktorý umožňuje definovať možnosti úprav v spracovanom súbore. Zraniteľnosť opravená vo vydaniach
Vim 8.1.1365 и Neovim 0.3.6.

Cez modeline je možné nainštalovať len obmedzený počet doplnkov. Ak je výraz zadaný ako hodnota voľby, vykoná sa v režime sandbox, ktorý umožňuje len najjednoduchšie bezpečné operácie. V tomto prípade platný príkaz obsahuje príkaz „:source“, v ktorom môžete použiť modifikátor „!“. spustiť ľubovoľné príkazy zo zadaného súboru. Na spustenie kódu teda stačí v modelovom riadku uviesť konštrukciu ako „set foldexpr=execute('\:source! some_file'):“. V Neovime je volanie spustenia zakázané, ale namiesto toho sa dá použiť potvrdenia.

Ak chcete napríklad spustiť príkaz „uname -a“, jednoducho otvorte súbor vo Vim alebo Neovim, ktorého prvý alebo posledný riadok hovorí:

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

Spoločnosť „zdroj! %" prečíta príkazy z aktuálneho súboru a podľa toho vykoná ":!uname -a". Únikové sekvencie možno použiť na skrytie daného riadku z výstupu obslužného programu mačiek. Napríklad v tomto využiť prototyp pri otvorení súboru vo vim sa vytvorí sieťové pripojenie s shellovým prístupom k systému obete, ale tento súbor nevzbudí podozrenie pri výstupe do terminálu pomocou utility cat.

Aktivitu režimu modelín môžete skontrolovať príkazom „:set modeline?“. Ak ho chcete zakázať, môžete do vimrc pridať riadok „set nomodeline“. V distribúciách je problém vyriešený RHEL, SUSE/openSUSE, Fedora, FreeBSD, ubuntu, Arch Linux и ALT. Zraniteľnosť zostáva neopravená debian (v Debiane je model predvolene vypnutý, takže zraniteľnosť sa v predvolenom stave nezobrazí).

Zdroj: opennet.ru

Pridať komentár