CVE-2024-8957
PTZOptics PT30X-SDI/NDI Cameras
2024-11-04
PTZOptics PT30X-SDI/NDI cameras contain an OS command injection vulnerability that allows a remote, authenticated attacker to escalate privileges to root via a crafted payload with the ntp_addr parameter of the /cgi-bin/param.cgi CGI script.
Технический анализ и план устранения
Суть уязвимости
CVE-2024-8957 представляет собой критическую уязвимость типа OS Command Injection (инъекция команд ОС) в камерах PTZOptics серии PT30X-SDI/NDI. Проблема локализована в CGI-скрипте /cgi-bin/param.cgi.
Уязвимость возникает из-за недостаточной фильтрации входных данных в параметре ntp_addr. Удаленный аутентифицированный злоумышленник может внедрить произвольные системные команды в этот параметр. Поскольку веб-сервер камеры или соответствующий скрипт выполняются с высокими привилегиями, выполнение специально сформированного запроса позволяет атакующему получить полный контроль над устройством с правами root.
Как исправить
Основным и единственным надежным способом устранения уязвимости является обновление прошивки (firmware) устройства до версии, в которой производитель реализовал корректную валидацию входных данных.
- Перейдите на официальный сайт технической поддержки PTZOptics в раздел загрузок.
- Найдите актуальную версию прошивки для вашей модели (PT30X-SDI или PT30X-NDI).
- Скачайте файл прошивки и проверьте его контрольную сумму (если предоставлена).
- Зайдите в веб-интерфейс камеры, перейдите в раздел System -> Upgrade.
- Загрузите файл прошивки и запустите процесс обновления.
- После перезагрузки убедитесь, что версия ПО обновилась.
Временные меры
Если немедленное обновление прошивки невозможно, необходимо принять меры по снижению риска эксплуатации (Workarounds):
-
Ограничение сетевого доступа: Изолируйте камеры в отдельный VLAN. Настройте правила Firewall (ACL), чтобы доступ к веб-интерфейсу (порты 80, 443) имели только доверенные IP-адреса администраторов.
-
Смена стандартных учетных данных: Поскольку для эксплуатации требуется аутентификация, установите сложные пароли для всех учетных записей. Это предотвратит атаку через подбор пароля (Brute-force) или использование дефолтных данных.
-
Отключение неиспользуемых служб: Если вы не используете NTP для синхронизации времени через веб-интерфейс, попробуйте отключить данную функцию, однако это не гарантирует полной защиты от прямого обращения к CGI-скрипту.
-
Мониторинг логов: Настройте логирование обращений к веб-серверу и отслеживайте подозрительные GET/POST запросы к
/cgi-bin/param.cgi, содержащие спецсимволы (;,&,|,$,`) в параметрах.
Пример проверки версии прошивки через curl (для автоматизации инвентаризации):
curl -u admin:password "http://<camera_ip>/cgi-bin/param.cgi?get_sys_info"