Зыяндуу файлды ачууда коддун аткарылышына алып келген Vimдеги аялуу

Тексттик редакторлордо vim и neovim табылган аялуу (CVE-2019-12735), бул атайын иштелип чыккан файлды ачууда каалаган кодду аткарууга мүмкүндүк берет. Көйгөй демейки моделдин режими («: set modeline») иштетилген файлда түзөтүү параметрлерин аныктоого мүмкүндүк берген учурда пайда болот. Чыгармаларда кемчиликтер аныкталды
Vim 8.1.1365 и Neovim 0.3.6.

Чектелген сандагы параметрлерди моделин аркылуу орнотууга болот. Эгерде туюнтма параметр мааниси катары көрсөтүлсө, ал эң жөнөкөй коопсуз операцияларга гана мүмкүндүк берген кумкоргон режиминде аткарылат. Бул учурда, жарактуу команда ":source" буйругун камтыйт, анда сиз "!" Модификаторун колдоно аласыз. көрсөтүлгөн файлдан каалаган буйруктарды иштетүү. Ошентип, кодду аткаруу үчүн моделдин сызыгында “set foldexpr=execute('\:source! some_file'):" сыяктуу конструкцияны көрсөтүү жетиштүү. Neovimде execute чалууга тыюу салынган, бирок анын ордуна assert_fails колдонсо болот.

Мисалы, "uname -a" буйругун иштетүү үчүн, Vim же Neovimде файлды ачыңыз, анын биринчи же акыркы сабында:

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

Компания «булак! %" учурдагы файлдан буйруктарды окуйт жана ошого жараша ":!uname -a" аткарат. Качуу ырааттуулугу мышык утилитасы тарабынан чыгарылган сызыкты жашыруу үчүн колдонулушу мүмкүн. Мисалы, мында эксплуатация прототиби vimде файлды ачууда, жабырлануучунун тутумуна кабыкча жетүү менен тармак байланышы түзүлөт, бирок бул файл cat утилитасын колдонуп терминалга чыкканда шек жаратпайт.

Моделдин режиминин активдүүлүгүн “: modeline орнотуу?” буйругу менен текшере аласыз. Аны өчүрүү үчүн vimrc'ке "nomodeline орнотуу" сабын кошсоңуз болот. Бөлүштүрүүдө көйгөй чечилет RHEL, SUSE/openSUSE, Fedora, FreeBSD, Ubuntu, Arch Linux и ALT. Алсыздык түзүлбөгөн бойдон калууда Debian (Debian моделинде демейки боюнча өчүрүлгөн, ошондуктан аялуу демейки абалда көрүнбөйт).

Source: opennet.ru

Комментарий кошуу