Zərərli faylı açarkən kodun icrasına səbəb olan Vim-də zəiflik

Mətn redaktorlarında cəldlik и neovim tapdı zəiflik (CVE-2019-12735), xüsusi hazırlanmış faylı açarkən ixtiyari kodun icrasına imkan verir. Problem, işlənmiş faylda redaktə seçimlərini təyin etməyə imkan verən defolt modelin rejimi (“:set modeline”) aktiv olduqda baş verir. Boşluq buraxılışlarda düzəldildi
Vim 8.1.1365 и Neovim 0.3.6.

Modelin vasitəsilə yalnız məhdud sayda seçim quraşdırıla bilər. İfadə seçim dəyəri kimi göstərilibsə, o, yalnız ən sadə təhlükəsiz əməliyyatlara imkan verən sandbox rejimində icra olunur. Bu halda, etibarlı əmrə “!” dəyişdiricisindən istifadə edə biləcəyiniz “:source” əmri daxildir. göstərilən fayldan ixtiyari əmrləri yerinə yetirmək üçün. Beləliklə, kodu icra etmək üçün model sətirində “set foldexpr=execute('\:source! some_file'):" kimi konstruksiyanı göstərmək kifayətdir. Neovim-də icra çağırışı qadağandır, lakin bunun əvəzinə assert_fails istifadə edilə bilər.

Məsələn, “unname -a” əmrini yerinə yetirmək üçün sadəcə olaraq Vim və ya Neovim-də birinci və ya sonuncu sətirində deyilir:

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

Şirkət “mənbə! %" cari fayldan əmrləri oxuyacaq və müvafiq olaraq ":!uname -a" icra edəcək. Escape ardıcıllıqları pişik yardım proqramı tərəfindən verilən xətti çıxışdan gizlətmək üçün istifadə edilə bilər. Məsələn, bunda istismar prototipi vim-də bir fayl açarkən, qurbanın sisteminə qabıq girişi ilə şəbəkə bağlantısı yaradılır, lakin bu fayl cat yardım proqramından istifadə edərək terminala çıxış edərkən şübhə yaratmayacaq.

Modelin rejiminin fəaliyyətini “:set modeline?” əmri ilə yoxlaya bilərsiniz. Onu söndürmək üçün vimrc-ə “set nomodeline” sətrini əlavə edə bilərsiniz. Dağıtımlarda problem həll olunur RHEL, SUSE/openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux и ALT. Zəiflik yamaqsız olaraq qalır Debian (Debian-da modelin standart olaraq qeyri-aktivdir, ona görə də zəiflik standart vəziyyətdə görünmür).

Mənbə: opennet.ru

Добавить комментарий