Vulnerabilità in Vim chì porta à l'esekzione di codice quandu apre un schedariu maliziusu

In editori di testu Vim и neovim trovu vulnerabilità (CVE-2019-12735), chì permette à u codice arbitrariu per esse eseguitu quandu apre un schedariu apposta. U prublema si trova quandu u modu di modeline predeterminatu (":set modeline") hè attivu, chì permette di definisce l'opzioni di edizione in u schedariu processatu. Vulnerabilità fissata in e versioni
Vim 8.1.1365 и Neovim 0.3.6.

Solu un numeru limitatu di opzioni pò esse installatu via modeline. Se una espressione hè specificata cum'è un valore di l'opzione, hè eseguita in modu sandbox, chì permette solu l'operazioni sicure più simplici. In questu casu, u cumandamentu validu include u cumandamentu ": source", in quale pudete aduprà u modificatore "!". per eseguisce cumandamenti arbitrarii da u schedariu specificatu. Cusì, per eseguisce u codice, hè abbastanza per indicà in a linea di modeline una custruzzione cum'è "set foldexpr=execute('\:source! some_file'):". In Neovim, chjamà execute hè pruibitu, ma assert_fails pò esse usatu invece.

Per esempiu, per eseguisce u cumandimu "uname -a", simpricimenti apre un schedariu in Vim o Neovim chì a prima o l'ultima linea dice:

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

Cumpagnia "fonte! %" leghjerà i cumandamenti da u schedariu attuale è eseguisce dunque ":!uname -a". E sequenze di escape ponu esse usate per ammuccià una linea data da l'output da l'utilità cat. Per esempiu, in questu sfruttà u prototipu quandu apre un schedariu in vim, una cunnessione di rete hè creata cù l'accessu di cunchiglia à u sistema di a vittima, ma questu schedariu ùn suscitarà micca suspetti quandu u output à u terminal usendu l'utilità cat.

Pudete verificà l'attività di u modu di modeline cù u cumandimu ": set modeline?". Per disattivà, pudete aghjunghje a linea "set nomodeline" à vimrc. In a distribuzione, u prublema hè risolta RHEL, SUSE/openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux и ALT. A vulnerabilità resta senza patch Debian (in Debian modeline hè disattivatu per difettu, cusì a vulnerabilità ùn appare micca in u statu predeterminatu).

Source: opennet.ru

Add a comment