WaratekVRT Sign in

CVE-2026-39842 OpenRemote

Affected softwareOpenRemote
Severity9.9 Critical CVSS 3.1
Fixed in1.22.0
WeaknessCode injection (CWE-94)
Published15 Apr 2026
Updated17 Jun 2026

Description

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.

CWE-917 · Expression language injection

Exploitation status

Proof of concept only

A proof of concept exists, but no reviewed exploit catalogue lists this CVE.

  • CISA KEV not listed
  • VulnCheck KEV not listed
  • CISA Vulnrichment exploitation: poc CISA recorded that an exploit has been demonstrated. Automatable: no, technical impact: total.
  • Indexed PoC 1 indexed, none at 5+ stars
  • EPSS 0.94% chance in 30 days

1 of these are GitHub repositories with fewer than 5 stars. They are listed for reference and don't count toward the exploitation status above.

IndexArtifactStarsFirst seen
GitHub PoC Critical remote code execution vulnerability in OpenRemote's Rules Engine allows authenticated users with `write:rules` role to execute arbitrary code on the server with root privileges. 1 2026-04-17

Waratek protection

No exploit published

Within Waratek scope. In the sources we check, nobody has published exploit code for this CVE or reported it being exploited.

A public code fix exists.

  • Protection none
  • Action unverified
  • Review automated Upstream data
  • Record active
Decided by Exploit code for this candidate, published in a reviewed catalogue or a GitHub repository with 5 or more stars, or in use per CISA or VulnCheck; not only a CISA verdict, a forecast, or nothing at all
Finding This CVE is not listed in CISA KEV or VulnCheck KEV, CISA Vulnrichment records no active exploitation, no reviewed exploit catalogue carries an entry for it, and no GitHub PoC repository for it has 5 or more stars. Nobody has published exploit code worth tracing, so it is not a candidate for a rule ahead of the ones where somebody has; an upstream fix path does exist, so the remediation half of the candidacy still holds. This is a statement about what has been published, not about whether the defect is reachable or serious.
Candidate fix https://github.com/openremote/openremote/security/advisories/GHSA-7mqr-33rv-p3mp : the maintainers' own security advisory: names the version that fixes it, so the fix is the difference between two releases

Affected software and releases

Maven packages

Affected and fixed versions, from OSV.dev
PackageIntroducedFixedLast affected
io.openremote:openremote-manager 0 1.22.0 unbounded

Products and versions

2 products, 2 version entries
SourceVendorProductSchemeAffected versions
osv io.openremote openremote-manager generic < 1.22.0
nvd openremote openremote generic < 1.22.0

References

URLTags
https://github.com/openremote/openremote/security/advisories/GHSA-7mqr-33rv-p3mp advisory
https://github.com/openremote/openremote PACKAGE
https://github.com/openremote/openremote/releases/tag/1.22.0 WEB

Timeline

Published2026-04-15By the CVE Program.
NVD record modified2026-06-17NVD's own last-modified date for this record.