Уязвимость в Webmin, позволяющая удалять произвольные файлы в системе
В проекте Webmin выявлена опасная уязвимость, позволяющая аутентифицированным пользователям удалить любой файл в системе. Операция удаления производится из обработчика заданий cron, выполняемого с правами пользователя root. Проблема вызвана некорректной обработкой файлов блокировки, которые создаются с использованием в имени файла содержимого одной из передаваемых пользователем переменных. Указав в переменной user относительный путь к файлу и разделив его нулевым символом (например, "../../../../etc/passwd%00"), будет осуществлён вызов unlink("../../../../etc/passwd .lock") в директории с файлами блокировки, что приведёт к удалению файла /etc/passwd.
Интересно, что проблема без лишней огласки наличия уязвимости была устранена в майском выпуске Webmin 1.690. В примечании к выпуску было в общем виде было упомянуто устранение межсайтового скриптинга и исправление незначительных проблем. Уязвимость была исправлена под видом добавления дополнительной проверки на предмет существования пользователя в системе.