Nova ranjivost je otklonjena u unaprijed instaliranim uređivačima teksta na raznim distribucijama Linux je pronađen u Vim i Neovim uređivačima teksta (CVE-2019-12735).
Greška pronađena u ovim urednicima omogućava hakerima kontrolu računara kada korisnici otvore zlonamjernu tekstualnu datoteku. Problem se očituje u aktivnosti modela koje je omogućeno prema zadanim postavkama (": set modeline"), što vam omogućava da definirate opcije uređivanja u datoteci koja se obrađuje.
Vim i njegova NeoVim vilica sadržavali su manu koja je ostala u modelima. Ova funkcija omogućava korisnicima da odrede dimenzije prozora i druge prilagođene opcije blizu početka ili kraja tekstualne datoteke.
Ova je značajka omogućena po defaultu u verzijama prije Vim 8.1.1365 Neovim 0.3.6 i odnosi se na sve vrste datoteka, uključujući .txt datoteke.
O ranjivosti u Vim-u
Kroz Modeline, dozvoljen je samo ograničeni broj opcija. SAko je izraz naveden kao vrijednost opcije, on se izvodi u režimu izoliranog okruženja, što omogućava korištenje samo najjednostavnijih sigurnih operacija.
Istovremeno, naredba ": source" je jedna od dozvoljenih, u kojoj možete koristiti modifikator "!" za pokretanje proizvoljnih naredbi iz navedene datoteke.
Zbog toga je za izvršenje koda dovoljno navesti u liniji modela konstrukciju oblika "set foldexpr = execute ('\: source! Some_file'):". U Neovimu je poziv za izvršenje zabranjen, ali umjesto njega može se koristiti assert_fails.
S druge strane, u pješčaniku je dizajniran da spriječi neželjene efekte:
Opcije 'foldexpr', 'formatexpr', 'includeexpr', 'indentexpr', 'statusline' i 'foldtext' mogu se sve procijeniti u zaštićenom okruženju. To znači da ste od ovih izraza zaštićeni neugodnim nuspojavama. Ovo pruža određenu sigurnost kada su ove opcije definirane iz modela.
Iako modeli ograničavaju dostupne naredbe i izvršavaju ih u okruženju izoliranom od operativnog sistema, istraživač Armin Razmjou napomenuo je da je naredba: font! zaobišao ovu zaštitu:
"Ona čita i izvršava naredbe u datoj datoteci kao da su unesene ručno, izvršavajući ih nakon što se ostavi pješčanik", napisao je istraživač u poruci objavljenoj ranije ovog mjeseca. -ci.
Tako se trivijalno može napraviti linija modela koja izvršava kôd izvan pješčanika.
Post uključuje dvije tekstualne datoteke s dokazom principa, od kojih jedan grafički ilustrira prijetnju.
Jedan od njih otvara obrnutu ljusku na računaru sa Vim ili NeoVim. Odatle su napadači mogli pokretati naredbe po svom izboru na rekviriranoj mašini.
"Ovaj PoC opisuje stvarni pristup napada u kojem se obrnuta ljuska pokreće kada korisnik otvori datoteku", napisao je Razmjou. «Da bi se sakrio napad, datoteka će se odmah ponovo napisati kada se otvori. Također, PoC koristi sekvence izlaznih terminala da sakrije liniju modela kada se sadržaj ispisuje s cat. (mačka -v otkriva stvarni sadržaj). «
Ranjivost izvršavanja naredbi zahtijeva aktiviranje standardne funkcionalnosti modeliranja, kao u nekim Linux distribucijama prema zadanim postavkama. Kvar je pronađen u Vimu prije verzije 8.1.1365 i u Neovimu prije verzije 0.3.6.
Ovaj savjet iz Nacionalne baze podataka o ranjivostima Nacionalnog instituta za standarde i tehnologiju pokazuje da su distribucije Debian i Fedora Linux počele izdavati fiksne verzije.
U distribucijama je problem riješen u RHEL, SUSE / openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux i ALT.
Ranjivost ostaje neispravljena u Debianu (U Debian modeline je onemogućen prema zadanim postavkama, tako da se ranjivost ne očituje u zadanom stanju).
Najnovija verzija MacOS-a i dalje koristi ranjivu verziju, iako napadi djeluju samo kada su korisnici promijenili zadanu postavku koja ima omogućenu značajku modelinessa.