Vim ievainojamība ļāva koda izpildi, atverot TXT

spars

Dažādos izplatījumos iepriekš instalētajos teksta redaktoros tika novērsta jauna ievainojamība Linux tika atrasts Vim un Neovim teksta redaktoros (CVE-2019-12735).

Kļūda, kas atrasta šajos redaktoros ļauj hakeriem kontrolēt datorus, kad lietotāji atver ļaunprātīgu teksta failu. Problēma izpaužas pēc modeļa darbības, kas iespējota pēc noklusējuma (": set modeline"), kas ļauj apstrādājamajā failā definēt rediģēšanas opcijas.

Vim un tā NeoVim dakša saturēja trūkumu, kas atradās modeļos. Šī funkcija ļauj lietotājiem norādīt loga izmērus un citas pielāgotas opcijas netālu no teksta faila sākuma vai beigām.

Šī funkcija pēc noklusējuma ir iespējota versijās pirms Vim 8.1.1365 Neovim 0.3.6 un attiecas uz visiem failu tipiem, ieskaitot .txt failus.

Par Vim ievainojamību

Izmantojot Modeline, ir atļauts tikai ierobežots iespēju skaits. SJa izteiksme ir norādīta kā opcijas vērtība, tā darbojas smilškastes režīmā, kas ļauj izmantot tikai vienkāršākās drošās darbības.

Tajā pašā laikā komanda ": source" ir viena no atļautajām, kurā jūs varat izmantot modifikatoru "!" lai palaistu patvaļīgas komandas no norādītā faila.

Tādēļ, lai izpildītu kodu, pietiek ar to, ka modelīna rindā jānorāda veidlapas "set foldexpr = execute ('\: source! Some_file'):" konstrukcija. Neovim izpildes izsaukums ir aizliegts, bet tā vietā var izmantot assert_fails.

No otras puses, smilšu kastē tas ir paredzēts, lai novērstu blakusparādības:

Opcijas 'foldexpr', 'formatexpr', 'includeexpr', 'indentexpr', 'statusline' un 'foldtext' var novērtēt smilškastē. Tas nozīmē, ka jūs esat aizsargāts pret šīm izpausmēm ar nepatīkamām blakusparādībām. Tas nodrošina zināmu drošību, ja šīs opcijas ir definētas no modeļa.

Kamēr modeļi ierobežo pieejamās komandas un izpilda tās vidē, kas ir izolēta no operētājsistēmas, pētnieks Armīns Razmjou atzīmēja, ka komanda: font! apiet šo aizsardzību:

"Viņa lasa un izpilda komandas dotajā failā tā, it kā tās būtu ievadītas manuāli, izpildot tās, tiklīdz smilšu kaste ir palikusi," pētnieks raksta šī mēneša sākumā publicētajā ziņojumā. -ci.

Tādējādi var triviāli izveidot modeļa līniju, kas kodu izpilda ārpus smilšu kastes.

Ziņā ir iekļauti divi teksta faili ar principu, no kuriem viens grafiski ilustrē draudus.

Viens no tiem atver reverso apvalku datorā, kurā darbojas Vim vai NeoVim. No turienes uzbrucēji pie pieprasītās mašīnas varēja palaist izvēlētās komandas.

"Šis PoC apraksta reālu uzbrukuma pieeju, kurā reversā čaula tiek palaista, kad lietotājs atver failu," raksta Razmjou. «Lai slēptu uzbrukumu, fails tiks nekavējoties pārrakstīts, kad tas tiks atvērts. Arī PoC izmanto termināla evakuācijas secības, lai paslēptu modeļa līniju, kad saturs tiek drukāts ar kaķi. (kaķis -v atklāj faktisko saturu). «

Komandas izpildes ievainojamībai ir jāaktivizē standarta modelēšanas funkcionalitāte, kā dažos Linux izplatījumos pēc noklusējuma. Defekts ir atrodams Vim pirms 8.1.1365 versijas un Neovim pirms 0.3.6 versijas.

Šis Nacionālā standartu un tehnoloģiju institūta Nacionālo ievainojamību datu bāzes ieteikums parāda, ka Debian un Fedora Linux izplatītāji ir sākuši izlaist fiksētas versijas.

Sadalījumos problēma tiek atrisināta RHEL, SUSE / openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux un ALT.

Debian joprojām nav ievainots (Debian modelīnā tas pēc noklusējuma ir atspējots, tāpēc ievainojamība neizpaužas noklusējuma stāvoklī).

Jaunākajā MacOS versijā joprojām tiek izmantota neaizsargāta versija, lai gan uzbrukumi darbojas tikai tad, kad lietotāji ir mainījuši noklusējuma iestatījumu, kurā ir iespējota modeļu funkcija.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: AB Internet Networks 2008 SL
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.