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