CVE-2019-17621

D-Link DIR-859 Router

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2023-06-29

Официальное описание

D-Link DIR-859 router contains a command execution vulnerability in the UPnP endpoint URL, /gena.cgi. Exploitation allows an unauthenticated remote attacker to execute system commands as root by sending a specially crafted HTTP SUBSCRIBE request to the UPnP service when connecting to the local network.

🛡️
Технический анализ и план устранения

Суть уязвимости

CVE-2019-17621 представляет собой критическую уязвимость типа Command Injection (инъекция команд) в сервисе UPnP роутера D-Link DIR-859. Проблема локализована в обработчике /gena.cgi.

При обработке HTTP-запроса метода SUBSCRIBE устройство некорректно фильтрует содержимое заголовков (в частности, поля Callback). Неавторизованный атакующий, находясь в локальной сети, может внедрить произвольные системные команды в этот заголовок. Поскольку сервис UPnP работает с привилегиями суперпользователя, это приводит к полному захвату устройства с правами root.

Как исправить

Данная уязвимость исправлена на уровне прошивки. Единственным надежным способом устранения является обновление микропрограммного обеспечения (firmware) до актуальной версии, где функции обработки UPnP-запросов были переписаны с учетом безопасности.

  1. Перейдите на официальный портал поддержки D-Link.
  2. Скачайте последнюю версию прошивки для ревизии вашего устройства (обычно v1.06B01 Beta01 или выше).
  3. Зайдите в веб-интерфейс роутера (обычно 192.168.0.1).
  4. Перейдите в раздел Management -> Upgrade.
  5. Загрузите скачанный файл и дождитесь завершения процесса.

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

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

  1. Отключение UPnP (Рекомендуется): Это полностью устраняет вектор атаки, так как уязвимый эндпоинт /gena.cgi перестанет принимать запросы.
  2. В веб-интерфейсе перейдите в Advanced -> Advanced Network.
  3. Снимите галочку с пункта Enable UPnP.
  4. Сохраните настройки.

  5. Ограничение доступа к локальной сети: Поскольку эксплуатация возможна только из локальной сети, убедитесь, что к роутеру не имеют доступа недоверенные устройства (через Wi-Fi или физические порты).

  6. Изоляция сегмента управления: Если устройство используется в корпоративной среде, вынесите интерфейс управления и трафик UPnP в отдельный защищенный VLAN.

  7. Проверка через Telnet (если доступен): Если у вас есть доступ к консоли, вы можете временно остановить процесс, отвечающий за UPnP (обычно upnpd или аналогичный), однако это действие не сохранится после перезагрузки.

killall upnpd