В пакете gnome-exe-thumbnailer, поставляемом во многих дистрибутивах, но официально не входящем в состав GNOME, выявлена уязвимость (CVE-2017-11421), позволяющая выполнить код злоумышленника при просмотре в файловом менеджере каталога, содержащего специально оформленный исполняемый файл Windows в формате MSI. Примечательно, что всего несколько дней назад похожая проблема была исправлена в компоненте evince.thumbnailer.
Уязвимость вызвана ошибкой в коде извлечения версии формата MSI в shell-скрипте gnome-exe-thumbnailer. Для выполнения данной операции на лету создаётся VBScript, анализирующий поля в файле, который затем выполняется через Wine:
wine cscript.exe //E:vbs //NoLogo Z:\tmp\${TEMPFILE1##*/}.vbs 2/dev/null"
Так как VBScript-скрипт для извлечения версии оформлен в виде шаблона, в который подставляется имя файла (Set DB = WI.OpenDatabase(«$INPUTFILE»,0)), то указав в имени файла символ кавычки можно подставить дополнительный код в формируемый VBScript. Например, при разборе файла с именем
poc.msi",0):Set fso=CreateObject("Scripting.FileSystemObject"):Set poc=fso.CreateTextFile("badtaste.txt")'.msi
в шаблоне появится конструкция, создающая файл badtaste.txt:
Set DB = WI.OpenDatabase("poc.msi",0):Set fso=CreateObject("Scripting.FileSystemObject"):Set poc=fso.CreateTextFile("badtaste.txt")',0)
Для эксплуатации уязвимости достаточно организовать вызов обработчика gnome-exe-thumbnailer для подготовленного злоумышленником файла. В частности, gnome-exe-thumbnailer будет запущен для создания миниатюр для файлов MSI при открытии каталога с ними в файловом менеджере, например, для атаки достаточно вставить USB-накопитель с вредоносным файлом. Другим вектором атаки является web-браузер: при открытии специально оформленной страницы можно инициировать вызов простроителя миниатюр в Chrome и Epiphany, не требуя от пользователя каких-либо действий.
Уязвимость устранена в выпуске gnome-exe-thumbnailer 0.9.5. В качестве обходного пути защиты можно отключить gnome-exe-thumbnailer, удалив файл /usr/share/thumbnailers/gnome-exe-thumbnailer. Проследить появление пакетов с исправлениями можно на данных страницах: Debian, FreeBSD, Ubuntu, SUSE, openSUSE, RHEL, Fedora.