Kerentanan dina Vim anu nyababkeun palaksanaan kode nalika muka file jahat

Dina éditor téks Vim и neovim kapanggih karentanan (CVE-2019-12735), anu ngamungkinkeun kode sawenang-wenang dieksekusi nalika muka file anu dirarancang khusus. Masalahna lumangsung nalika modeu modél standar (": set modeline") aktip, anu ngamungkinkeun anjeun pikeun nangtukeun pilihan ngedit dina file anu diolah. Kerentanan dibereskeun dina release
Vim 8.1.1365 и Neovim 0.3.6.

Ngan sajumlah kawates pilihan bisa dipasang via modeline. Upami éksprési ditetepkeun salaku nilai pilihan, éta dieksekusi dina modeu sandbox, anu ngamungkinkeun ngan ukur operasi anu paling gampang. Dina hal ieu, paréntah anu sah kalebet paréntah ": sumber", dimana anjeun tiasa nganggo modifier "!". pikeun ngajalankeun paréntah sawenang tina file anu ditangtukeun. Ku kituna, sangkan ngaéksekusi kode, éta cukup pikeun nunjukkeun dina garis modeline hiji konstruksi kawas "set foldexpr = execute ('\: source! some_file'):". Dina Neovim, nelepon ngaéksekusi dilarang, tapi assert_fails bisa dipaké gantina.

Contona, pikeun ngajalankeun paréntah "uname -a", kantun buka file dina Vim atanapi Neovim anu baris kahiji atawa panungtung nyebutkeun:

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

Perusahaan "sumber! %" bakal maca paréntah tina file ayeuna sareng ngajalankeun ":!uname -a". Runtuyan kabur tiasa dianggo pikeun nyumputkeun garis anu dipasihkeun tina kaluaran ku utilitas ucing. Contona, dina ieu mangpaatkeun prototipe nalika muka file dina vim, sambungan jaringan dijieun kalawan aksés cangkang kana sistem korban, tapi file ieu moal ngahudangkeun kacurigaan nalika kaluaran ka terminal ngagunakeun utiliti ucing.

Anjeun tiasa pariksa kagiatan mode modeline ku paréntah ": set modeline?". Pikeun nganonaktipkeun éta, anjeun tiasa nambihan garis "set nomodeline" kana vimrc. Dina distribusi masalah dibereskeun dina RHEL, SUSE / openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux Ubuntu и Alt. kerentanan tetep unpatched di Debian (dina model Debian ditumpurkeun sacara standar, janten kerentananna henteu muncul dina kaayaan standar).

sumber: opennet.ru

Tambahkeun komentar