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-запросов были переписаны с учетом безопасности.
- Перейдите на официальный портал поддержки D-Link.
- Скачайте последнюю версию прошивки для ревизии вашего устройства (обычно v1.06B01 Beta01 или выше).
- Зайдите в веб-интерфейс роутера (обычно
192.168.0.1). - Перейдите в раздел Management -> Upgrade.
- Загрузите скачанный файл и дождитесь завершения процесса.
Временные меры
Если обновление прошивки невозможно в данный момент, необходимо минимизировать поверхность атаки следующими способами:
- Отключение UPnP (Рекомендуется):
Это полностью устраняет вектор атаки, так как уязвимый эндпоинт
/gena.cgiперестанет принимать запросы. - В веб-интерфейсе перейдите в Advanced -> Advanced Network.
- Снимите галочку с пункта Enable UPnP.
-
Сохраните настройки.
-
Ограничение доступа к локальной сети: Поскольку эксплуатация возможна только из локальной сети, убедитесь, что к роутеру не имеют доступа недоверенные устройства (через Wi-Fi или физические порты).
-
Изоляция сегмента управления: Если устройство используется в корпоративной среде, вынесите интерфейс управления и трафик UPnP в отдельный защищенный VLAN.
-
Проверка через Telnet (если доступен): Если у вас есть доступ к консоли, вы можете временно остановить процесс, отвечающий за UPnP (обычно
upnpdили аналогичный), однако это действие не сохранится после перезагрузки.
killall upnpd