CVE-2019-16278
Nostromo nhttpd
2024-11-07
Nostromo nhttpd contains a directory traversal vulnerability in the http_verify() function in a non-chrooted nhttpd server allowing for remote code execution.
Технический анализ и план устранения
Суть уязвимости
CVE-2019-16278 — это критическая уязвимость типа Directory Traversal (обход каталогов) в веб-сервере Nostromo nhttpd (версии до 1.9.7 включительно). Проблема локализована в функции http_verify().
Уязвимость возникает из-за некорректной проверки путей в HTTP-запросах. Злоумышленник может использовать последовательность символов \x0d (CR) или специфические кодировки для обхода фильтров, запрещающих переход в родительские директории (../). Если сервер запущен не в chroot-окружении, атакующий получает возможность обращаться к системным файлам (например, /bin/sh) и выполнять произвольный код (RCE) с правами пользователя, от которого запущен процесс nhttpd.
Как исправить
Единственным надежным способом устранения уязвимости является обновление Nostromo nhttpd до версии 1.9.7 или выше, в которой логика проверки путей была исправлена.
- Скачайте последнюю версию исходного кода с официального сайта проекта (nazgul.ch).
- Соберите и установите обновленную версию:
tar -zxvf nostromo-1.9.9.tar.gz
cd nostromo-1.9.9
make
sudo make install
- Перезапустите службу nhttpd для применения изменений:
sudo killall nhttpd
sudo /usr/local/sbin/nhttpd
Временные меры
Если немедленное обновление невозможно, необходимо применить следующие меры для снижения риска:
- Включение изоляции (chroot):
Отредактируйте конфигурационный файл
nhttpd.confи убедитесь, что сервер работает в изолированном окружении. Это ограничит доступ злоумышленника только файлами внутри указанной директории.
# В nhttpd.conf установите параметр:
homedir /var/nostromo
-
Ограничение прав доступа: Запускайте процесс nhttpd от имени непривилегированного пользователя с минимальными правами в системе.
-
Настройка Web Application Firewall (WAF): Настройте правила фильтрации входящего трафика для блокировки запросов, содержащих подозрительные последовательности символов в URL, такие как
..%0d/или%2e%2e%2f. -
Использование сетевых экранов: Ограничьте доступ к порту веб-сервера только для доверенных IP-адресов, если сервер используется для внутренних нужд.