CVE-2026-67310: OpenRemote insecure direct object reference in setAssetLinks

CVE-2026-67310 · Severity: medium · CVSS 5.4 · Published 2026-08-01

OpenRemote is an IoT platform management system that handles asset management and alarms across different customer organizations (realms). An authenticated attacker can exploit a flaw in the setAssetLinks endpoint to create links between their alarms and assets belonging to other customers, allowing them to view confidential asset names and details from other organizations. This breaks the multi-tenant isolation that separates customer data.

Technologies: OpenRemote. Vendors: OpenRemote.

Quick answers

Is CVE-2026-67310 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-67310 being exploited in the wild.
How severe is CVE-2026-67310?
Medium severity, with a CVSS score of 5.4, published 1 August 2026.
Which products and versions are affected?
OpenRemote <= 1.26.2.
Is there a fix for CVE-2026-67310?
A patch was published on 2026: Fixed in version 1.27.0 Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-67310 attacked?
It is attacked over the network, in a web application.
Am I affected by CVE-2026-67310?
Check whether you run OpenRemote at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

The vulnerability is an insecure direct object reference (IDOR) with incorrect authorization in the AlarmResourceImpl.setAssetLinks endpoint. The root cause is that the realm access validation uses realms.stream().findFirst() on a HashSet, which only checks a single arbitrary realm instead of all realms in the request. Since HashSet iteration order is non-deterministic, an attacker can retry requests until their realm is validated first (~50% probability), allowing all subsequent realm links—including victim realms—to be persisted. The downstream alarmService.linkAssets() call has no additional realm ownership validation. An authenticated attacker can then retrieve victim asset names through GET requests on their own alarm via @Formula annotations. Patches are available in version 1.27.0 and later.

Affected products

  • OpenRemote OpenRemote <= 1.26.2

Timeline

  • 2026-07-16: disclosed
  • 2026-08-01: advisory
  • 2026: patched: Fixed in version 1.27.0

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.