Utilizatorii de Linux sunt cei care sunt afectați de acest exploit descoperit de Armin Razmjou. Dacă nu v-ați updatat sistemul de Linux în ultimul timp, un sfat util ar fi să faceți update neapărat la Vim și Neovim în caz că le folosiți pentru a edita fișiere text.

Cercetătorul de securitate a descoperit o vulnerabilitate ce permite executarea de cod arbitrar pe sistemul de operare de pe care este deschis fișierul text (CVE-2019-12735) în Vim sau Neovim (acestea sunt printre cele mai populare editoare text în linie comandă ce vin preinstalate în majoritatea distribuțiilor de Linux).

Editorul Vim permite userilor să creeze, vizualizeze sau editeze orice tip de fișiere, printre care includem text, scripturi și multe altele.

Neovim este un fork de-al lui Vim, ce permite instalarea de pluginuri, oferă și un GUI pentru o utilizare mai ușoară, iar vulnerabilitatea există și în aceasta aplicație.

Execuție de cod în Vim și Neovim

Razmjou a descoperit un exploit în felul în care editorul Vim manipulează "modelines", un feature ce vine activat în mod default, ce permite găsirea și aplicarea unor preferințe alese de către cel care a creat fișierul ce se regăsesc aproape de începutul și sfârșitul liniilor dintr-un document.

Demo - reverse shell prin netcat

Cu toate că editorul permite un subset de opțiuni în "modelines" (din motive de securitate) și folosește protecție sandbox pentru cazurile în care fișierele conțin expresii malițioase, cercetătorul a descoperit că prin intermediul comenzii ":source!", această protecție sandbox poate fi evitată.

Drept urmare, din momentul în care deschizi un fișier text prin intermediul Vim sau Neovim, se poate deschide un server prin netcat care să execute comenzi în secret pe sistemul tău.

Sunt disponibile 2 PoC-uri, unul care demonstrează un atac real în care un actor malițios obține acces pe sistemul în cauză prin intermediul unui reverse shell de îndată ce fișierul este deschis.

Dezvoltatorii aplicațiilor Vim (vesiune cu fix - 8.1.1365) și Neovim (versiune cu fix - 0.3.6) au updatat codurile aplicațiilor pentru a remedia această problemă.

De asemenea, aceștia au mai oferit următoarele sfaturi:

  • dezactivați featureul de modelines
  • dezactivați "modelineexpr" pentru a interzice utilizarea expresiilor în modelines
  • folosirea "securemodelines plugin", o alternativă sigură pentru Vim modelines.
Dacă ați fost afectați de unul dintre aceste exploituri, vă aștept să vă împărtășiți experiențele pe pagina de Facebook.