Una vulnerabilità in Vim consentiva l'esecuzione di codice all'apertura di un TXT

Vim

Una nuova vulnerabilità è stata risolta negli editor di testo preinstallati su varie distribuzioni Linux è stato trovato negli editor di testo Vim e Neovim (CVE-2019-12735).

Il bug trovato in questi editor consente agli hacker di controllare i computer quando gli utenti aprono un file di testo dannoso. Il problema si manifesta con l'attività modeline abilitata di default (": set modeline"), che permette di definire le opzioni di modifica nel file che si sta elaborando.

Vim e la sua forcella NeoVim contenevano un difetto che risiedeva nelle modeline. Questa funzione consente agli utenti di specificare le dimensioni della finestra e altre opzioni personalizzate vicino all'inizio o alla fine di un file di testo.

Questa funzione è abilitata per impostazione predefinita nelle versioni precedenti a Vim 8.1.1365 Neovim 0.3.6 e si applica a tutti i tipi di file, inclusi i file .txt.

Sulla vulnerabilità in Vim

Attraverso Modeline, è consentito solo un numero limitato di opzioni. SSe un'espressione viene specificata come valore dell'opzione, viene eseguita in modalità sandbox, che consente di utilizzare solo le operazioni sicure più semplici.

Allo stesso tempo, il comando ": source" è uno di quelli consentiti, in cui è possibile utilizzare il modificatore "!" per eseguire comandi arbitrari dal file specificato.

Pertanto, per eseguire il codice, è sufficiente indicare nella riga modeline una costruzione della forma "set foldexpr = execute ('\: source! Some_file'):". In Neovim, la chiamata di esecuzione è vietata, ma al suo posto è possibile utilizzare assert_fails.

D'altra parte, nella sandbox, è progettato per prevenire effetti collaterali:

Le opzioni "foldexpr", "formatexpr", "includeexpr", "indentexpr", "statusline" e "foldtext" possono essere valutate in una sandbox. Ciò significa che sei protetto da queste espressioni con spiacevoli effetti collaterali. Ciò fornisce una certa sicurezza quando queste opzioni sono definite da un modello.

Mentre i modelli limitano i comandi disponibili e li eseguono in un ambiente isolato dal sistema operativo, il ricercatore Armin Razmjou ha notato che il comando: font! ha aggirato questa protezione:

"Legge ed esegue i comandi in un dato file come se fossero stati inseriti manualmente, eseguendoli una volta che la sandbox è stata lasciata", ha scritto la ricercatrice in un messaggio pubblicato all'inizio di questo mese. -ci.

Quindi, si può costruire banalmente una linea del modello che esegue il codice al di fuori della sandbox.

Il post include due file di testo di prova, uno dei quali illustra graficamente la minaccia.

Uno di questi apre una shell inversa sul computer che esegue Vim o NeoVim. Da lì, gli aggressori potevano lanciare i comandi di loro scelta sulla macchina requisita.

"Questo PoC descrive un vero approccio di attacco in cui viene lanciata una shell inversa quando l'utente apre il file", ha scritto Razmjou. «Per nascondere l'attacco, il file verrà immediatamente riscritto all'apertura. Inoltre, PoC utilizza sequenze di escape del terminale per nascondere la linea del modello quando il contenuto viene stampato con cat. (cat -v rivela il contenuto effettivo). «

La vulnerabilità relativa all'esecuzione dei comandi richiede l'attivazione della funzionalità di modellazione standard, come in alcune distribuzioni Linux predefinite. Il difetto si trova in Vim prima della versione 8.1.1365 e in Neovim prima della versione 0.3.6.

Questo avviso dal National Vulnerabilities Database del National Institute of Standards and Technology mostra che le distribuzioni Debian e Fedora Linux hanno iniziato a rilasciare versioni fisse.

Nelle distribuzioni, il problema è risolto in RHEL, SUSE / openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux e ALT.

La vulnerabilità rimane non corretta in Debian (Nella modeline Debian è disabilitato per impostazione predefinita, quindi la vulnerabilità non si manifesta nello stato predefinito).

L'ultima versione di MacOS continua a utilizzare una versione vulnerabile, sebbene gli attacchi funzionino solo quando gli utenti hanno modificato un'impostazione predefinita che ha la funzione modelines abilitata.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.