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

Проект KDE рекомендовал воздержаться от установки неофициальных глобальных тем оформления и виджетов к KDE после инцидента с удалением всех личных файлов у пользователя, установившего тему оформления Grey Layout из каталога KDE Store, насчитывающую около 4000 загрузок. Предполагается, что инцидент вызван не злым умыслом, а ошибкой, связанной с небезопасным использованием команды “rm -rf”.

В глобальных темах оформления KDE предусмотрена возможность использования плазмойдов, запускающих произвольные команды, которые среди прочего могут использоваться для удаления файлов. При использовании в коде конструкций вида “rm -rf $VAR/*”, может возникнуть ситуация, когда переменная $VAR оказывается неинициализированной, что приведёт к фактическому выполнению команды “rm -rf /*”. Ранее похожие ошибки всплывали в скриптах инициализации Squid, Steam и bumblebee.

Произошедший инцидент связывается с вызовом кода из виджета PlasmaConfSaver, в котором имеется скрипт save.sh, выполняющий удаление старых файлов конфигурации, оставшихся после прошлой установки. Файлы удаляются командой “rm -Rf “$configFolder”, при том, что в коде отсутствует проверка установки переменной $configFolder, значение которой передаётся через аргумент командной строки (“configFolder=$2”). Изначально код был рассчитан на использование в KDE 5, но из-за изменений в KDE 6 логика вызова обработчиков могла быть нарушена и в переменной оказалось значение, приводящее к удалению всех данных пользователя (например, вместо запуска “sh save.sh somepath/ …” мог быть выполнен код “sh save.sh somepath / …”, в результате чего в переменной configFolder оказалось значение “/”).

Разработчики KDE намерены провести аудит сторонних тем оформления, размещённых к каталоге KDE Store, для выявления похожих ошибок, а также организовать вывод предупреждений при установке тем, размещённых сторонними пользователями. Дополнительно обсуждается вопрос введения предварительной проверки проектов, размещаемых в KDE Store, с целью противостояния целевому размещению злоумышленниками тем оформления, нацеленных на выполнение вредоносных действий, таких как кража конфиденциальных данных и запуск процессов для подмены номеров криптокошельков в буфере обмена.

Как правило, многие пользователи не предполагают, что при установке темы оформления может выполняться код, поэтому не уделяют должного внимания безопасности при установке тем. Глобальные темы оформления не только влияют на внешний вид, но и изменяют поведение Plasma и могут включать в состав собственные реализации блокировщиков экрана и апплетов, т.е. компоненты, выполняющие код. Из-за отсутствия ресурсов размещаемые в каталоге KDE Store проекты никак не проверяются и размещаются исключительно на основе доверия, при том, что в каталоге может зарегистрироваться любой желающий.

Release. Ссылка here.