OpenRemote is Vulnerable to Expression Injection
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-917.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| openremote | openremote | before 1.22.0 | 1.22.0 | Patch available | CNA |
| — | io.openremote:openremote-manager (Maven) | before 1.22.0 | 1.22.0 | Patch available | GHSA-7mqr-33rv-p3mp |
- openremote Vendoropenremote Affected before 1.22.0 Fixed in 1.22.0 Patch available CNA
- io.openremote:openremote-manager (Maven) Vendor— Affected before 1.22.0 Fixed in 1.22.0 Patch available GHSA-7mqr-33rv-p3mp
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:openremote:openremote:*:*:*:*:*:*:*:* | before 1.22.0 | Vulnerable | openremote |
- cpe:2.3:a:openremote:openremote:*:*:*:*:*:*:*:* Versions before 1.22.0 Vulnerable ·openremote
Remediation
- Fix · CNA openremote (openremote) Fixed in 1.22.0
- Fix · GHSA-7mqr-33rv-p3mp io.openremote:openremote-manager (Maven) Fixed in 1.22.0 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-39842
- 2026-10-03 Alias added: GHSA-7mqr-33rv-p3mp
References
More Openremote vulnerabilities
- TI-2022-13714 An issue was discovered in OpenRemote through 1.0.4 allows attackers to execute arbitrary… CVSS 3.1CRITICAL 9.8
- TI-2026-29790 OpenRemote has Improper Access Control via updateUserRealmRoles function CVSS 3.1HIGH 7.0
- TI-2026-29538 OpenRemote has XXE in Velbus Asset Import CVSS 3.1HIGH 7.6
- TI-2026-44461 OpenRemote < 1.26.0 SQL Injection via Crosstab Export CVSS 4.0HIGH 7.2
Sources
- CVE-2026-39842 · CVE Program
- CVE-2026-39842 · NVD
- FIRST EPSS
- GHSA-7mqr-33rv-p3mp · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences