CVE-2021-26828

OpenPLC ScadaBR

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

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

2025-12-03

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

OpenPLC ScadaBR contains an unrestricted upload of file with dangerous type vulnerability that allows remote authenticated users to upload and execute arbitrary JSP files via view_edit.shtm.

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

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

Уязвимость CVE-2021-26828 в OpenPLC ScadaBR классифицируется как Unrestricted File Upload (загрузка файлов без ограничения типов). Аутентифицированный злоумышленник может использовать эндпоинт view_edit.shtm для загрузки вредоносных файлов с расширением .jsp (Java Server Pages). Поскольку приложение не проверяет должным образом содержимое и расширение загружаемого файла, а веб-сервер (обычно Apache Tomcat) по умолчанию исполняет JSP-файлы, злоумышленник может обратиться к загруженному скрипту напрямую через браузер. Это приводит к удаленному выполнению произвольного кода (RCE) с привилегиями пользователя веб-сервера, что позволяет полностью скомпрометировать хост.

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

Установите последнее официальное обновление безопасности для OpenPLC ScadaBR из репозитория разработчика, в котором закрыта данная уязвимость. Если патч недоступен, внедрите строгий "белый список" (Allowlist) на уровне исходного кода для проверки расширений файлов (разрешите только графические форматы, например: .jpg, .png, .gif). Реализуйте обязательную проверку MIME-типов и сигнатур (magic bytes) загружаемых файлов, чтобы исключить обход фильтров путем подмены расширения. Измените логику сохранения файлов: переименовывайте загружаемые файлы случайным образом (например, генерируя UUID), чтобы злоумышленник не мог предсказать путь к файлу. Настройте сохранение пользовательских файлов вне корневой директории веб-сервера (webroot), чтобы полностью исключить возможность их прямого вызова и исполнения через URL.

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

Ограничьте доступ к веб-интерфейсу ScadaBR на уровне межсетевого экрана (разрешите доступ только через VPN или с доверенных IP-адресов). Настройте правила Web Application Firewall (WAF) для блокировки HTTP POST-запросов к view_edit.shtm, если они содержат файлы с расширениями .jsp, .jspx, .class или .java. Запретите выполнение скриптов в директории загрузки на уровне конфигурации Tomcat, переопределив обработчик для этой папки в файле web.xml. Для выявления возможных попыток эксплуатации проанализируйте логи доступа веб-сервера на наличие подозрительных POST-запросов:

grep "view_edit.shtm" /opt/scadabr/tomcat/logs/localhost_access_log.* | grep "POST"

Для оперативного обнаружения уже загруженных вредоносных JSP-файлов (созданных за последние 7 дней) выполните поиск по директории веб-приложения:

find /opt/scadabr/tomcat/webapps/ScadaBR/ -type f -name "*.jsp" -mtime -7