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 или выше, в которой логика проверки путей была исправлена.

  1. Скачайте последнюю версию исходного кода с официального сайта проекта (nazgul.ch).
  2. Соберите и установите обновленную версию:
tar -zxvf nostromo-1.9.9.tar.gz
cd nostromo-1.9.9
make
sudo make install

  1. Перезапустите службу nhttpd для применения изменений:
sudo killall nhttpd
sudo /usr/local/sbin/nhttpd

Временные меры

Если немедленное обновление невозможно, необходимо применить следующие меры для снижения риска:

  1. Включение изоляции (chroot): Отредактируйте конфигурационный файл nhttpd.conf и убедитесь, что сервер работает в изолированном окружении. Это ограничит доступ злоумышленника только файлами внутри указанной директории.
# В nhttpd.conf установите параметр:
homedir /var/nostromo

  1. Ограничение прав доступа: Запускайте процесс nhttpd от имени непривилегированного пользователя с минимальными правами в системе.

  2. Настройка Web Application Firewall (WAF): Настройте правила фильтрации входящего трафика для блокировки запросов, содержащих подозрительные последовательности символов в URL, такие как ..%0d/ или %2e%2e%2f.

  3. Использование сетевых экранов: Ограничьте доступ к порту веб-сервера только для доверенных IP-адресов, если сервер используется для внутренних нужд.