CVE-2026-39842

CRITICAL CVSS 3.1: 9,9
Обновлено 17 апреля 2026
Openremote
Параметр Значение
CVSS 9,9 (CRITICAL)
Устранено в версии 1.22.0
Тип уязвимости CWE-94 (Внедрение кода), CWE-917
Поставщик Openremote
Публичный эксплойт Нет

OpenRemote — это IoT-платформа с открытым исходным кодом. Версии 1.21.0 и ниже содержат две взаимосвязанные уязвимости внедрения выражений в обработчике правил, которые позволяют выполнять произвольный код на сервере. Механизм правил JavaScript выполняет предоставленные пользователем сценарии через ScriptEngine.eval() Nashorn без изолированной программной среды, фильтрации классов или ограничений доступа, а проверка авторизации в RulesResourceImpl ограничивает правила Groovy только суперпользователями, оставляя правила JavaScript неограниченными для любого пользователя с ролью write:rules.

Кроме того, механизм правил Groovy имеет фильтр безопасности GroovyDenyAllFilter, который определен, но никогда не регистрируется, поскольку код регистрации закомментирован, что делает SandboxTransformer неэффективным для правил Groovy, созданных суперпользователем. Злоумышленник, не являющийся суперпользователем, с ролью write:rules может создавать наборы правил JavaScript, которые выполняются с полным доступом к JVM, обеспечивая удаленное выполнение кода от имени пользователя root, чтение произвольных файлов, кражу переменных среды, включая учетные данные базы данных, а также полный обход мультитенантной изоляции для доступа к данным во всех областях. Эта проблема исправлена ​​в версии 1.22.0.

Показать оригинальное описание (EN)

OpenRemote is an open-source IoT platform. Versions 1.21.0 and below contain two interrelated expression injection vulnerabilities in the rules engine that allow arbitrary code execution on the server. The JavaScript rules engine executes user-supplied scripts via Nashorn's ScriptEngine.eval() without sandboxing, class filtering, or access restrictions, and the authorization check in RulesResourceImpl only restricts Groovy rules to superusers while leaving JavaScript rules unrestricted for any user with the write:rules role. Additionally, the Groovy rules engine has a GroovyDenyAllFilter security filter that is defined but never registered, as the registration code is commented out, rendering the SandboxTransformer ineffective for superuser-created Groovy rules. A non-superuser attacker with the write:rules role can create JavaScript rulesets that execute with full JVM access, enabling remote code execution as root, arbitrary file read, environment variable theft including database credentials, and complete multi-tenant isolation bypass to access data across all realms. This issue has been fixed in version 1.22.0.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Нужны права
Низкие
Нужны базовые права
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Высокое
Полная утечка данных
Целостность
Высокое
Полная модификация данных
Доступность
Высокое
Полный отказ в обслуживании

Строка CVSS v3.1