CVE-2021-26829

OpenPLC ScadaBR

ВЕРОЯТНОСТЬ 6.9%

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

2025-11-28

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

OpenPLC ScadaBR contains a cross-site scripting vulnerability via system_settings.shtm.

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

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

Уязвимость CVE-2021-26829 представляет собой хранимый или отраженный межсайтовый скриптинг (Cross-Site Scripting, XSS) в веб-интерфейсе OpenPLC ScadaBR, конкретно в файле system_settings.shtm.

Проблема заключается в том, что приложение некорректно фильтрует и не экранирует пользовательский ввод перед его отображением на странице настроек системы.

В результате злоумышленник может внедрить вредоносный JavaScript-код. Если аутентифицированный пользователь (например, администратор АСУ ТП) откроет скомпрометированную страницу system_settings.shtm, скрипт выполнится в его браузере. Это может привести к: * Краже сессионных файлов (Cookies) и токенов авторизации. * Выполнению несанкционированных действий в системе ScadaBR от имени администратора (изменение конфигурации ПЛК, остановка процессов). * Дальнейшей компрометации внутренней сети предприятия.

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

Единственным надежным способом устранения уязвимости является обновление продукта OpenPLC и компонента ScadaBR до последней версии, в которой разработчики реализовали строгую санитизацию (очистку) вводимых данных.

  1. Создайте резервную копию текущей конфигурации и базы данных ScadaBR перед началом обновления.
  2. Перейдите в директорию установки OpenPLC (путь может отличаться в зависимости от вашей ОС).
cd /opt/OpenPLC_v3

  1. Загрузите последние обновления из официального репозитория проекта.
git pull

  1. Запустите скрипт установки для пересборки и применения патчей.
./install.sh

  1. Перезапустите службу OpenPLC для применения изменений.
systemctl restart openplc

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

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

  • Сетевая сегментация и ограничение доступа. Изолируйте интерфейс управления ScadaBR. Разрешите доступ к порту веб-интерфейса (по умолчанию 8080) только с выделенных IP-адресов рабочих станций администраторов с помощью межсетевого экрана.
iptables -A INPUT -p tcp --dport 8080 -s 192.168.1.50 -j ACCEPT

iptables -A INPUT -p tcp --dport 8080 -j DROP

  • Блокировка доступа к уязвимому эндпоинту через Reverse Proxy. Если ScadaBR опубликован через Nginx или Apache, ограничьте доступ к файлу system_settings.shtm на уровне веб-сервера. Пример конфигурации для Nginx:
location = /ScadaBR/system_settings.shtm {
    allow 192.168.1.50;
    deny all;
    proxy_pass http://127.0.0.1:8080;
}

  • Внедрение Web Application Firewall (WAF). Настройте WAF (например, ModSecurity) для инспекции HTTP-трафика, направленного к ScadaBR. Включите базовые правила (OWASP CRS) для перехвата и блокировки типичных XSS-векторов (наличие тегов <script>, обработчиков событий onerror=, javascript: в параметрах запроса).

  • Организационные меры. Запретите администраторам использовать браузер, в котором открыта сессия ScadaBR, для серфинга в интернете или чтения электронной почты, чтобы минимизировать риск эксплуатации через социальную инженерию.