Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain valid ROLE_REST account credentials
-
DeliveryIdentify target alarm ID via REST API enumeration
-
ExploitCraft PUT request to /api/v2/alarms/{id} with arbitrary ackUser parameter
-
ExecutionInverted authorization condition bypasses delegation check
-
PersistAlarm action recorded under victim username
-
ImpactAudit trail integrity silently compromised
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires a valid authenticated account with the ROLE_REST role explicitly assigned within OpenNMS; this role is a deliberate administrator grant, not a default for newly created users. The ROLE_READONLY bypass variant additionally requires the attacker account to hold both ROLE_REST and ROLE_READONLY simultaneously. The REST API endpoint must be network-reachable from the attacker's position. Limiting factors include the mandatory ROLE_REST authentication requirement (CVSS PR:L confirms this), the fact that OpenNMS is architecturally intended for private-network deployment limiting internet exposure, and that exploitation affects only alarm state integrity - it yields no code execution, no credential disclosure, and no system-level access. No special non-default product configuration is required beyond having any ROLE_REST account in the system; the flaw exists in all standard deployments running a vulnerable version. |
| Impact | The CVSS 3.1 score of 4.3 (Medium) accurately reflects the bounded impact: network-reachable and low-complexity, but gated behind a ROLE_REST credential and producing only low-integrity impact with no confidentiality or availability effect. No EPSS data was provided, the vulnerability is absent from CISA KEV, and no public exploit code has been identified at time of analysis. Real-world risk is further bounded by the vendor's documented deployment posture - OpenNMS is explicitly intended for installation within private organizational networks, so internet-facing exposure should be exceptional rather than typical. That said, even a mid-sized municipal IT operations team in bytom relying on OpenNMS for infrastructure visibility faces meaningful risk if a rogue or compromised ROLE_REST account is used to attribute alarm acknowledgements to innocent staff, corrupting audit trails and potentially obscuring active incidents. The ROLE_READONLY bypass is particularly notable because it violates an explicit, named security boundary that administrators may have deliberately configured. Overall priority is moderate for organizations with broad ROLE_REST grants, and low for those with tightly controlled accounts and proper network segmentation. |
| Exploit ScenarioDerived | An insider or attacker who has obtained a valid ROLE_REST account sends an HTTP PUT request to |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 13, 2026
Incorrect authorization in OpenNMS Meridian and Horizon's v2 Alarm REST API allows any authenticated ROLE_REST user to acknowledge, escalate, or clear alarms attributed to arbitrary usernames, effectively forging audit records without holding delegation privileges. An inverted boolean condition in AlarmRestService.java - !StringUtils.isNotBlank(ackUser) instead of StringUtils.isNotBlank(ackUser) - renders the credential delegation check dead code for any non-blank username supplied in the request. Users simultaneously holding ROLE_REST and ROLE_READONLY can additionally bypass the read-only restriction to modify alarm state. No public exploit exists and the vulnerability is absent from CISA KEV; vendor-confirmed patches are available via OpenNMS GitHub PR #8755.
RemediationAI
Upgrade OpenNMS Meridian to version 2024.3.12 or 2025.0.9 (whichever branch applies to the deployment), or upgrade OpenNMS Horizon to version 36.0.3 or newer, as confirmed by the vendor. The underlying fix - removing the logical negation from the StringUtils.isNotBlank() check in AlarmRestService.java - is a one-line change available in GitHub PR #8755 (https://github.com/OpenNMS/opennms/pull/8755); organizations capable of building from source can apply this immediately. As an interim workaround pending upgrade, audit and restrict ROLE_REST role assignments to only explicitly trusted service accounts, reducing the population of users able to exploit the flaw; be aware this does not eliminate risk for accounts that legitimately hold ROLE_REST. Additionally, enforce network-level access controls (firewall rules, VPN requirements) to ensure the OpenNMS REST API is not reachable from untrusted networks, consistent with the vendor's stated deployment guidance.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
OpenNMS Horizon and Meridian are Java-based network monitoring platforms sharing a common REST API layer. The vulnerable endpoint is the doUpdateProperties method in AlarmRestService.java, which handles HTTP PUT requests to the v2 alarms API for acknowledgement, escalation, and clear operations. The authorization guard was intended to prevent a user from submitting an ackUser parameter specifying a different username without holding delegation rights. Due to the logical negation error - the condition if (ackUser != null && !StringUtils.isNotBlank(ackUser)) evaluates to true only for blank strings, never for a real username - the enforcement block is entirely bypassed when an attacker supplies a non-blank arbitrary username. This is a textbook instance of CWE-863 (Incorrect Authorization): the check exists but is logically inverted, a logic flaw distinct from a missing control. CPE strings cpe:2.3:a:the_opennms_group:meridian:*:*:*:*:*:*:*:* and cpe:2.3:a:the_opennms_group:horizon:*:*:*:*:*:*:*:* confirm all versions of both products prior to the patched releases are affected.
Know when Meridian gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
REST API is network-accessible (AV:N), exploitation requires only a ROLE_REST account (PR:L) with no additional complexity, and impact is confined to alarm record integrity (I:L) with no confidentiality or availability effect.
Primary rating from Vendor (OpenNMS).
CVSS VectorVendor: OpenNMS
DescriptionCVE.org
An incorrect authorization check in the v2 Alarm REST API in OpenNMS Meridian and Horizon allows a low-privileged authenticated user (ROLE_REST) to acknowledge, escalate, or clear alarms recorded as an arbitrary username, and, when also assigned ROLE_READONLY, to modify alarm state despite the read-only restriction. A credential check that should restrict these operations is guarded by an inverted condition, so it never executes for a real (non-blank) username. This can potentially allow an attacker to compromise the integrity of alarm state and audit records.
The solution is to upgrade to Meridian 2024.3.12, 2025.0.9 and Horizon 36.0.3 or newer. Meridian and Horizon installation instructions state that they are intended for installation within an organization's private networks and should not be directly accessible from the Internet.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
In OpenMNS Horizon 31.0.8 and versions earlier than 32.0.2 and related Meridian versions, any user that has the ROLE_FIL
The Horizon REST API includes a users endpoint in OpenMNS Horizon 31.0.8 and versions earlier than 32.0.2 on multiple pl
In OpenNMS Horizon, versions opennms-1-0-stable through opennms-27.1.0-1; OpenNMS Meridian, versions meridian-foundation
In OpenNMS Horizon, versions opennms-1-0-stable through opennms-27.1.0-1; OpenNMS Meridian, versions meridian-foundation
In OpenNMS Horizon, versions opennms-17.0.0-1 through opennms-27.1.0-1; OpenNMS Meridian, versions meridian-foundation-2
In OpenNMS Horizon, versions opennms-18.0.0-1 through opennms-27.1.0-1; OpenNMS Meridian, versions meridian-foundation-2
Unauthenticated authorization bypass in the OpenNMS Meridian and Horizon REST API lets any remote attacker who can reach
A BeanShell interpreter in remote server mode runs in OpenMNS Horizon versions earlier than 32.0.2 and in related Meridi
In OpenNMS Horizon, versions opennms-1-0-stable through opennms-27.1.0-1; OpenNMS Meridian, versions meridian-foundation
In OpenNMS Horizon, versions opennms-1-0-stable through opennms-27.1.0-1; OpenNMS Meridian, versions meridian-foundation
OpenNMS Meridian 2016, 2017, 2018 before 2018.1.25, 2019 before 2019.1.16, and 2020 before 2020.1.5, Horizon 1.2 through
In OpenNMS Horizon, versions opennms-1-0-stable through opennms-27.1.0-1; OpenNMS Meridian, versions meridian-foundation
EUVD-2026-57719
GHSA-r53w-fffc-9ppv
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB