Обнаружена Root-уязвимость в пакете nginx для Debian и Ubuntu

Обнаружена Root-уязвимость в пакете nginx для Debian и Ubuntu

Опубликованы подробности и эксплоит для уязвимости (CVE-2016-1247) в пакете с nginx, в конце октября устранённой в Debian и Ubuntu. Проблема специфична для deb-пакета nginx, не касается самого nginx, и может привести к выполнению кода с правами root при наличии у атакующего прав доступа "www-data" в системе.

Проблема вызвана некорректными настройками доступа к директории с логами web-сервера. Директория с логами /var/log/nginx имеет владельца "www-data", что позволяет пользователю с данными полномочиями произвольно манипулировать файлами в данной директории. При запуске или перезапуске nginx в лог добавляются записи от процесса с правами root. Периодически скрипт ротации логов меняет владельца файлов с логами на "www-data", пишет opennet.ru.

Локальный пользователь с правами www-data может создать в директории /var/log/nginx символическую ссылку вместо файла с логом "error.log". Таким образом, направив символическую ссылку "/var/log/nginx/error.log" на другой файл перед перезапуском nginx, можно изменить любой файл в системе. Перезапуск nginx по сигналу USR1 осуществляется скриптом ротации логов, который по умолчанию вызывается из cron.daily каждый день в 6:25.

Для организации запуска кода с правами root в эксплоите осуществляется создание символической ссылки на файл /etc/ld.so.preload (/var/log/nginx/error.log -> /etc/ld.so.preload), который после перезапуска nginx будет создан, а после ротации лога получит владельца www-data, что позволит прописать в нём произвольную библиотеку атакующего, после чего библиотека будет активироваться при выполнении любого исполняемого файла, например, можно запустить suid root приложение /usr/bin/sudo.

Подпишитесь
в Facebook

Я уже с вами