Kerentanan dalam Vim membenarkan pelaksanaan kod ketika membuka TXT

Vim

Kerentanan baru telah diperbaiki dalam penyunting teks yang telah dipasang sebelumnya pada pelbagai pengedaran Linux dijumpai dalam editor teks Vim dan Neovim (CVE-2019-12735).

Bug yang terdapat dalam editor ini membolehkan penggodam mengawal komputer ketika pengguna membuka fail teks berniat jahat. Masalahnya ditunjukkan dengan aktiviti modeline yang diaktifkan secara lalai (": set modeline"), yang memungkinkan anda menentukan pilihan penyuntingan dalam fail yang sedang diproses.

Vim dan garpu NeoVimnya mengandungi cacat yang terdapat dalam model. Fungsi ini membolehkan pengguna menentukan dimensi tetingkap dan pilihan khusus lain di awal atau akhir fail teks.

Fungsi ini diaktifkan secara lalai dalam versi sebelum Vim 8.1.1365 Neovim 0.3.6 dan berlaku untuk semua jenis fail, termasuk fail .txt.

Mengenai kerentanan di Vim

Melalui Modeline, hanya sebilangan pilihan yang dibenarkan. SSekiranya ungkapan ditentukan sebagai nilai pilihan, ia berjalan dalam mod kotak pasir, yang hanya membolehkan operasi selamat paling mudah digunakan.

Pada masa yang sama perintah ": source" adalah salah satu yang dibenarkan, di mana anda boleh menggunakan pengubah "!" untuk menjalankan perintah sewenang-wenang dari fail yang ditentukan.

Oleh itu, untuk melaksanakan kod, cukup untuk menunjukkan dalam garis model pembinaan bentuk "set foldexpr = execute ('\: source! Some_file'):". Di Neovim, panggilan eksekusi dilarang, tetapi assert_fails dapat digunakan sebagai gantinya.

Sebaliknya, di kotak pasir, ia dirancang untuk mencegah kesan sampingan:

Pilihan 'foldexpr', 'formatexpr', 'includeeexpr', 'indentexpr', 'statusline' dan 'foldtext' semuanya boleh dinilai dalam kotak pasir. Ini bermaksud bahawa anda dilindungi daripada ungkapan ini dengan kesan sampingan yang tidak menyenangkan. Ini memberikan beberapa keselamatan apabila pilihan ini ditentukan dari model.

Walaupun model membatasi perintah yang tersedia dan melaksanakannya dalam lingkungan yang terasing dari sistem operasi, penyelidik Armin Razmjou menyatakan bahawa arahan: font! mengelakkan perlindungan ini:

"Dia membaca dan menjalankan perintah dalam file tertentu seolah-olah mereka dimasukkan secara manual, menjalankannya setelah kotak pasir ditinggalkan," kata penyelidik dalam sebuah pesan yang diterbitkan awal bulan ini. -ci.

Oleh itu, seseorang dapat membina garis model secara sepele yang melaksanakan kod di luar kotak pasir.

Catatan merangkumi dua fail teks bukti prinsip, salah satunya menggambarkan ancaman secara grafik.

Salah satunya membuka cengkerang terbalik di komputer yang menjalankan Vim atau NeoVim. Dari sana, penyerang dapat melancarkan perintah pilihan mereka di mesin yang diminta.

"PoC ini menjelaskan pendekatan serangan nyata di mana shell terbalik dilancarkan ketika pengguna membuka fail," tulis Razmjou. «Untuk menyembunyikan serangan, fail akan ditulis semula dengan segera apabila dibuka. Juga, PoC menggunakan urutan pelarian terminal untuk menyembunyikan garis model ketika kandungan dicetak dengan kucing. (cat -v mendedahkan kandungan sebenar). «

Kerentanan pelaksanaan perintah memerlukan pengaktifan fungsi pemodelan standard, seperti dalam sebilangan pengedaran Linux secara lalai. Kecacatan dijumpai di Vim sebelum versi 8.1.1365 dan di Neovim sebelum versi 0.3.6.

Nasihat ini dari Pangkalan Data Kerentanan Nasional Institut Standard dan Teknologi Nasional menunjukkan bahawa pengedaran Debian dan Fedora Linux telah mula mengeluarkan versi tetap.

Dalam pengedaran, masalah diselesaikan dalam RHEL, SUSE / openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux, dan ALT.

Kerentanan tetap tidak dapat diperbaiki di Debian (Dalam model Debian, ia dilumpuhkan secara lalai, sehingga kerentanan tidak terwujud dalam keadaan lalai).

Versi terbaru MacOS terus menggunakan versi rentan, walaupun serangan hanya berfungsi ketika pengguna telah mengubah pengaturan default yang mengaktifkan fitur modelines.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.