CVE-2017-6884
Zyxel EMG2926 Routers
2023-09-18
Zyxel EMG2926 routers contain a command injection vulnerability located in the diagnostic tools, specifically the nslookup function. A malicious user may exploit numerous vectors to execute malicious commands on the router, such as the ping_ip parameter to the expert/maintenance/diagnostic/nslookup URI.
Технический анализ и план устранения
Суть уязвимости
CVE-2017-6884 представляет собой критическую уязвимость типа Command Injection (инъекция команд) в веб-интерфейсе роутеров Zyxel EMG2926 (версия прошивки V1.00(AAQT.4) и более ранние). Проблема локализована в диагностических инструментах, а именно в функции nslookup.
Уязвимость возникает из-за недостаточной фильтрации входных данных в параметре ping_ip при отправке запроса к URI expert/maintenance/diagnostic/nslookup. Злоумышленник, имеющий доступ к веб-интерфейсу, может внедрить произвольные системные команды через метасимволы оболочки (например, ;, &, |, `). Поскольку веб-сервер устройства зачастую работает с привилегиями суперпользователя (root), это позволяет полностью скомпрометировать устройство, перехватывать трафик или использовать роутер как плацдарм для атаки на внутреннюю сеть.
Как исправить
Основным и единственным надежным способом устранения уязвимости является обновление микропрограммы (firmware) устройства до версии, в которой данная ошибка исправлена.
- Перейдите на официальный портал поддержки Zyxel.
- Скачайте актуальную версию прошивки для модели EMG2926 (версия должна быть выше V1.00(AAQT.4)).
- Зайдите в веб-интерфейс роутера.
- Перейдите в раздел
Maintenance->Firmware Upgrade. - Загрузите скачанный файл и запустите процесс обновления.
Временные меры
Если немедленное обновление прошивки невозможно, необходимо принять меры по минимизации рисков:
- Ограничьте доступ к веб-интерфейсу управления. Убедитесь, что удаленное управление (Remote Management/WAN Side Management) отключено.
iptables -A INPUT -p tcp --dport 80 -i eth0 -j DROP
iptables -A INPUT -p tcp --dport 443 -i eth0 -j DROP
-
Измените стандартные пароли администратора на сложные и уникальные, чтобы предотвратить несанкционированный доступ к разделу диагностики.
-
Используйте сегментацию сети, чтобы изолировать сегмент управления роутером от недоверенных пользователей.
-
Отключите неиспользуемые службы, такие как Telnet или SSH, через настройки интерфейса или CLI.
telnetd -l /bin/sh -p 23 -D
(Примечание: команда выше приведена для идентификации процесса; для отключения используйте остановку службы в веб-интерфейсе).