Chyba zabezpečení ve Vim umožnila spuštění kódu při otevření TXT

Elán

V předinstalovaných textových editorech v různých distribucích byla opravena nová chyba zabezpečení Linux byl nalezen v textových editorech Vim a Neovim (CVE-2019-12735).

Chyba nalezená v těchto editorech umožňuje hackerům ovládat počítače, když uživatelé otevřou škodlivý textový soubor. Problém se projevuje ve výchozím nastavení povolenou aktivitou modeline (": set modeline"), která umožňuje definovat možnosti úprav v souboru, který se zpracovává.

Vim a jeho vidlice NeoVim obsahovaly chybu, která spočívala v modelech. Tato funkce umožňuje uživatelům určit rozměry okna a další vlastní možnosti blízko začátku nebo konce textového souboru.

Tato funkce je ve výchozím nastavení povolena ve verzích starších než Vim 8.1.1365 Neovim 0.3.6 a platí pro všechny typy souborů, včetně souborů .txt.

O zranitelnosti ve Vimu

Prostřednictvím Modeline, je povolen pouze omezený počet možností. SPokud je výraz zadán jako hodnota možnosti, běží v režimu izolovaného prostoru, což umožňuje použití pouze nejjednodušších bezpečných operací.

Současně příkaz ": source" je jedním z povolených, ve kterém můžete použít modifikátor "!" spustit libovolné příkazy ze zadaného souboru.

K provedení kódu tedy stačí uvést v modelové řadě konstrukci formuláře „set foldexpr = execute ('\: source! Some_file'):". V Neovimu je volání provádění zakázáno, ale místo toho lze použít assert_fails.

Na druhé straně je v karanténě navržen tak, aby zabránil vedlejším účinkům:

Možnosti „foldexpr“, „formatexpr“, „includeexpr“, „indentexpr“, „stavový řádek“ a „foldtext“ lze vyhodnotit v karanténě. To znamená, že jste proti těmto výrazům chráněni s nepříjemnými vedlejšími účinky. To poskytuje určité zabezpečení, když jsou tyto možnosti definovány z modelu.

Zatímco modely omezují dostupné příkazy a spouštějí je v prostředí izolovaném od operačního systému, výzkumník Armin Razmjou poznamenal, že příkaz: font! tuto ochranu obešel:

„Přečte a provede příkazy v daném souboru, jako by byly zadány ručně, a provede je, jakmile opustí karanténu,“ napsal výzkumník ve zprávě zveřejněné na začátku tohoto měsíce. -ci.

Lze tedy triviálně sestavit modelovou řadu, která provádí kód mimo karanténu.

Příspěvek obsahuje dva textové soubory ověřené na principu, z nichž jeden graficky ilustruje hrozbu.

Jeden z nich otevře reverzní shell na počítači, na kterém běží Vim nebo NeoVim. Odtamtud mohli útočníci spustit příkazy podle svého výběru na požadovaném stroji.

„Tento dokument popisuje skutečný útok, při kterém je spuštěn reverzní shell, když uživatel otevře soubor,“ napsal Razmjou. «Chcete-li útok skrýt, bude soubor při otevření okamžitě přepsán. PoC také používá únikové sekvence terminálu ke skrytí modelové řady, když je obsah vytištěn pomocí cat. (cat -v odhalí skutečný obsah). «

Chyba zabezpečení při provádění příkazu vyžaduje aktivaci standardní funkce modelování, stejně jako v některých distribucích Linuxu ve výchozím nastavení. Vada se nachází ve Vim před verzí 8.1.1365 a v Neovim před verzí 0.3.6.

Toto doporučení z Národní databáze zranitelnosti Národního institutu pro standardy a technologie ukazuje, že distribuce Linuxu Debian a Fedora začaly vydávat pevné verze.

V distribucích je problém vyřešen v RHEL, SUSE / openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux a ALT.

Zranitelnost zůstává v Debianu neopravena (V modelu Debian je ve výchozím nastavení zakázán, takže se chyba ve výchozím stavu neprojevuje).

Nejnovější verze systému MacOS i nadále používá zranitelnou verzi, i když útoky fungují pouze v případě, že uživatelé změnili výchozí nastavení, které má povolenou funkci modelines.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Za data odpovídá: AB Internet Networks 2008 SL
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.