В Warpinator, развиваемой проектом Linux Mint утилите для шифрованного обмена файлами между двумя компьютерами, выявлена уязвимость (CVE-2023-29380), позволяющая отправителю удалить произвольные файлы на компьютере получателя. Уязвимость устранена в выпуске Warpinator 1.6.0, в котором также добавлена дополнительная защита от похожих проблем при выполнении других операций.
Уязвимость вызвана тем, что помимо параметров отправляемого файла программа передаёт список базовых каталогов top_dir_basenames, выставляемых относительно корневого каталога для помещения загружаемых файлов (по умолчанию ~/Warpinator). Содержимое каталогов из списка очищается во время инициализации, но элементы списка top_dir_basenames не проверяются на наличие спецсимволов, что позволяет указать в пути “../” и организовать удаление любых каталогов на стороне получателя, насколько это позволяют права доступа (например, можно удалить домашний каталог).
При запуске Warpinator в доверительном режиме операция удаления будет выполнена автоматически, в противном случае пользователю будет выведен диалог для подтверждения операции приёма файла с вызывающим подозрение сообщением. Примечательно, что в прошлом году в Warpinator уже находили похожую уязвимость (CVE-2022-4272), позволявшую создать или изменить файлы в системе. Для более общей защиты разработчикам Warpinator рекомендовано использовать более строгие технологии изоляции, такие как пространство имён точек монтирования, для блокирования выхода из базового каталога, в который осуществляется загрузка.