criticalCVSS 9.6Vulnerability

GHSA-h3m5-97jq-qjrf

### Summary OpenRemote Manager is vulnerable to a cross-tenant Insecure Direct Object Reference (IDOR) in the bulk alarm deletion endpoint. An authenticated user in any realm can delete alarms belonging to other realms (tenants) by supplying arbitrary alarm IDs. The vulnerability exists because the bulk removeAlarms() method only verifies that the caller's own realm is active and accessible, but never checks whether the targeted alarm IDs belong to the caller's realm before deleting them. This allows any user with alarm write permissions in their own realm to permanently destroy alarm records — including safety-critical and security alerts — belonging to any other tenant on the same OpenRemote installation. ------------------------------------------ [Additional Information] The singular removeAlarm() method correctly validates that the target alarm's realm matches the caller's access: // CORRECT (singular): SentAlarm alarm = alarmService.getAlarm(alarmId); if (!isRealmActiveAndAccessible(alarm.getRealm())) { throw new ForbiddenException(...); } The plural removeAlarms() method is missing this per-alarm realm check and only validates the caller's own realm — a check that is trivially satisfied for any authenticated user: ``` // VULNERABLE (plural): public void removeAlarms(RequestParams requestParams, List<Long> alarmIds) { if (!isRealmActiveAndAccessible(getAuthenticatedRealmName())) { throw new ForbiddenException(...); // always passes for any auth user } List<SentAlarm> alarms = alarmService.getAlarms(alarmIds); // no realm filter alarmService.removeAlarms(alarms, alarmIds); // no realm filter } ``` The underlying service queries contain no realm scoping: ``` // AlarmService.getAlarms(List<Long>): "select sa from SentAlarm sa where sa.id in :ids" // no realm filter // AlarmService.removeAlarms(): "delete from SentAlarm sa where sa.id in :ids" // no realm filter ``

Properties

ghsa_id
GHSA-h3m5-97jq-qjrf
severity
critical
summary
OpenRemote Manager: removeAlarms cross-realm IDOR (bulk delete)
cvss_score
9.6
cve_id
GHSA-h3m5-97jq-qjrf
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:H
is_ghsa_only
true
ghsa_published
2026-06-19T21:43:17Z
source_url
https://github.com/advisories/GHSA-h3m5-97jq-qjrf
ghsa_updated
2026-06-19T21:43:20Z

Related Entities (4)

REPORTED_BY (1)

[Source]GitHub Advisory Database

VULNERABLE_TO (1)

[Software]maven/io.openremote:openremote-manager

AFFECTS (1)

[Software]maven/io.openremote:openremote-manager

HAS_WEAKNESS (1)

[Weakness]Authorization Bypass Through User-Controlled Key

Explore deeper with Ninja Signal's threat intelligence graph

GHSA-h3m5-97jq-qjrf (CVSS 9.6) — Ninja Signal Threat Intelligence | Ninja Signal