Luka w Vimie umożliwiła wykonanie kodu podczas otwierania TXT

Vim

Naprawiono nową lukę we wstępnie zainstalowanych edytorach tekstu w różnych dystrybucjach Znaleziono Linuksa w edytorach tekstu Vim i Neovim (CVE-2019-12735).

Błąd znaleziony w tych edytorach umożliwia hakerom kontrolowanie komputerów, gdy użytkownicy otwierają złośliwy plik tekstowy. Problem objawia się domyślnie włączoną aktywnością modeliny („: set modeline”), co pozwala na zdefiniowanie opcji edycyjnych w przetwarzanym pliku.

Vim i jego widelec NeoVim zawierał błąd występujący w modelines. Ta funkcja umożliwia użytkownikom określenie wymiarów okna i innych niestandardowych opcji w pobliżu początku lub końca pliku tekstowego.

Ta funkcja jest domyślnie włączona w wersjach wcześniejszych niż Vim 8.1.1365 Neovim 0.3.6 i dotyczy wszystkich typów plików, w tym plików .txt.

O luce w Vimie

Poprzez Modeline, dozwolona jest tylko ograniczona liczba opcji. SJeśli wyrażenie jest określone jako wartość opcji, działa ono w trybie piaskownicy, który pozwala na użycie tylko najprostszych bezpiecznych operacji.

W tym samym czasie polecenie „: source” jest jednym z dozwolonych, w którym można użyć modyfikatora „!” do uruchamiania dowolnych poleceń z określonego pliku.

Dlatego do wykonania kodu wystarczy wskazać w linii modeline konstrukcję postaci "set foldexpr = execute ('\: source! Some_file'):". W Neovim, wywołanie wykonania jest zabronione, ale zamiast tego można użyć assert_fails.

Z drugiej strony w piaskownicy ma na celu zapobieganie skutkom ubocznym:

Wszystkie opcje „foldexpr”, „formatexpr”, „includeexpr”, „indentexpr”, „statusline” i „foldtext” mogą być sprawdzane w piaskownicy. Oznacza to, że jesteś chroniony przed tymi wyrażeniami z nieprzyjemnymi skutkami ubocznymi. Zapewnia to pewne bezpieczeństwo, gdy te opcje są definiowane z modelu.

Podczas gdy modele ograniczają dostępne polecenia i wykonują je w środowisku odizolowanym od systemu operacyjnego, badacz Armin Razmjou zauważył, że polecenie: font! ominęli tę ochronę:

„Odczytuje i wykonuje polecenia w danym pliku tak, jakby były wprowadzane ręcznie, wykonując je po opuszczeniu piaskownicy” - napisała badaczka w wiadomości opublikowanej na początku tego miesiąca. -ci.

W ten sposób można w trywialny sposób zbudować linię modelu, która wykonuje kod poza piaskownicą.

Post zawiera dwa pliki tekstowe sprawdzające zasady, z których jeden graficznie ilustruje zagrożenie.

Jeden z nich otwiera odwrotną powłokę na komputerze z uruchomionym Vimem lub NeoVimem. Stamtąd atakujący mogli uruchamiać wybrane przez siebie polecenia na zarekwirowanej maszynie.

„Ten dokument PoC opisuje prawdziwe podejście do ataku, w którym odwrotna powłoka jest uruchamiana, gdy użytkownik otwiera plik” - napisał Razmjou. «Aby ukryć atak, plik zostanie natychmiast przepisany po otwarciu. Ponadto PoC używa sekwencji ucieczki terminala, aby ukryć linię modelu, gdy treść jest drukowana z cat. (cat -v ujawnia rzeczywistą zawartość). «

Luka w wykonaniu polecenia wymaga aktywacji standardowej funkcjonalności modelowania, tak jak domyślnie w niektórych dystrybucjach Linuksa. Wada została znaleziona w Vimie przed wersją 8.1.1365 oraz w Neovim przed wersją 0.3.6.

Ten poradnik z National Vulnerability Database National Institute of Standards and Technology pokazuje, że dystrybucje Debiana i Fedory Linux zaczęły wydawać poprawione wersje.

W dystrybucjach problem jest rozwiązany w RHEL, SUSE / openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux i ALT.

Luka pozostaje nieskorygowana w Debianie (W modelu Debian jest on domyślnie wyłączony, więc luka nie objawia się w stanie domyślnym).

Najnowsza wersja systemu MacOS nadal korzysta z podatnej wersji, chociaż ataki działają tylko wtedy, gdy użytkownicy zmienili domyślne ustawienie, które ma włączoną funkcję modelines.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.