Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach OpenNMS /rest/** API endpoint
-
ExploitSend request with lowercase HTTP method
-
ExecutionFall through Spring Security filter chain unauthenticated
-
ImpactRead inventory and inject or suppress alarm events
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
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 only network reachability to the OpenNMS /rest/** REST API and the ability to send an HTTP request using a non-canonical method token (for example a lowercase verb such as 'get' or 'put' instead of 'GET'/'PUT'); no authentication, credentials, or user interaction are needed, and all pre-fix versions in default configuration are affected. The primary factor LIMITING exploitation is deployment posture: the vendor states Meridian/Horizon are intended for private networks and should not be directly Internet-accessible, so in correctly segmented environments the attacker must first reach the internal management network. The alarm-existence disclosure specifically relies on observing a difference in the /rest/alarms response. |
| Impact | This is a genuinely high-priority flaw where the CVSS signal and the technical reality agree: the vendor-supplied vector (CVSS:3.1/AV:N/AC:L/PR:N/UI:N → C:H/I:H) describes a remote, unauthenticated, low-complexity authorization bypass, and the source diff (PR #8934) confirms the exact mechanism - Spring Security intercept-url rules match the HTTP method as a case-sensitive uppercase token with no terminal deny rule, so a lowercase method token falls through all rules and is served without authentication. Exploitation is trivial (merely altering the HTTP method verb case), which argues for treating it as critical wherever the API is reachable. The strongest mitigating signal is NOT in the scoring but in the vendor documentation: Meridian/Horizon are designed for deployment inside private networks and explicitly should not be Internet-facing, so real-world exposure depends heavily on network position - Internet-exposed or flat-network instances are at severe, trivially-exploitable risk, while correctly segmented internal instances require an attacker to already hold a network foothold. Note the gaps: no EPSS probability was provided, the CVE is NOT in CISA KEV, and no public POC was identified, so there is currently no evidence of active or widespread exploitation despite the critical score - the 9.1 reflects ease and impact, not observed in-the-wild activity. |
| Exploit ScenarioDerived | An attacker with network access to an OpenNMS Horizon or Meridian REST API sends an otherwise normal request but uses a non-canonical (e.g. lowercase) HTTP method token, which matches none of the method-specific intercept-url rules and, because no terminal deny rule exists, is processed with no authentication. The attacker can then read the full monitored inventory and create, modify, or delete resources - including injecting events to fabricate or suppress alarms, or probing /rest/alarms to learn whether a given alarm exists from response differences. No public exploit code was identified, but the technique is trivial (AV:N/AC:L/PR:N) and requires only crafting the method verb. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Unauthenticated authorization bypass in the OpenNMS Meridian and Horizon REST API lets any remote attacker who can reach /rest/** read the monitored inventory and create, modify, or delete resources without credentials. The flaw arises because the Spring Security intercept-url rules match the HTTP method as a case-sensitive uppercase token and the filter chains terminate without a deny rule, so a request using a non-canonical method token (for example 'get' or 'put' instead of 'GET'/'PUT') matches no rule and is served without authentication; the /rest/alarms chain additionally leaks whether a specific alarm exists via a difference in the response. All pre-fix Meridian and Horizon versions in default configuration are affected, the vendor-supplied CVSS 3.1 base score is 9.1 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N, i.e. unauthenticated and low complexity), and no public exploit code was identified at time of analysis; the practical limiting factor is deployment posture, since the vendor states these products belong on private networks and should not be Internet-facing.
RemediationAI
Vendor-released patches are available: upgrade OpenNMS Meridian to 2024.3.14, 2025.0.11, or 2026.0.1 (or newer on the applicable maintenance line), and OpenNMS Horizon to 36.0.5 or newer; the fix itself is the upstream change in PR #8934 (https://github.com/OpenNMS/opennms/pull/8934), which adds a terminal <intercept-url pattern="/" access="denyAll"/> to each /rest/ Spring Security filter chain and converts the chains to use-expressions so unmatched requests - including lowercase method tokens - are denied rather than served unauthenticated. Where immediate patching is not possible, apply the vendor's stated deployment posture as an explicit compensating control: confirm Meridian/Horizon are not reachable from untrusted networks, restrict inbound access to the /rest/ path (and the management/UI ports generally) with network ACLs, firewall rules, or a reverse proxy that only forwards canonical uppercase HTTP methods to the backend, and terminate or reject non-canonical method tokens at the edge. Note the trade-off that method-rewriting proxies can break legitimate clients or mask other protocol anomalies, and that ACL/segmentation only reduces reachability - it does not fix the fail-open logic, so the bypass remains live for any attacker who gains a foothold on the internal management segment. Rotating any credentials or tokens that were exposed via unauthenticated REST reads is also advisable, and monitoring should be tuned for lowercase or otherwise non-canonical HTTP verbs hitting /rest/ as a detection signal for exploitation attempts.
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 Meridian and Horizon expose a Java Spring Security-protected REST API whose authorization is defined declaratively in applicationContext-spring-security.xml as a series of <intercept-url> rules inside <http pattern="/rest/"> filter chains. Each rule carries a pattern, an optional method attribute, and an access expression listing required roles (ROLE_REST, ROLE_ADMIN, ROLE_USER, ROLE_MOBILE, ROLE_PROVISION, ROLE_MINION, ROLE_FILESYSTEM_EDITOR, ROLE_ANONYMOUS). The root cause maps to CWE-862 (Missing Authorization) combined with a fail-open matching flaw: Spring Security compares the method attribute case-sensitively against the uppercase canonical HTTP verb, and because the chains contain no terminal catch-all deny rule, any request whose method token is non-canonical (e.g. lowercase 'get'/'put'/'delete') matches no method-specific rule and therefore falls through the entire chain with no authorization applied - the request is still processed by the downstream REST controllers. The vendor fix in GitHub PR #8934 is a fail-closed restructuring: it switches the affected chains to use-expressions="true", rewrites role lists as hasAnyRole(...)/hasRole(...) expressions, consolidates the /rest/alarms ack/unack/escalate/clear rules into a single method="PUT" rule on /rest/alarms/, and - critically - appends <intercept-url pattern="/**" access="denyAll"/> at the end of each chain so that a request matching no method-specific rule is denied rather than permitted. The CPE data (cpe:2.3:a:the_opennms_group:meridian and cpe:2.3:a:the_opennms_group:horizon) confirms that both the commercial Meridian track and the community Horizon track share the same vulnerable code path, which is expected given that Meridian is derived from Horizon. The /rest/alarms endpoint is also notable because its missing deny rule produces an observable response difference that discloses alarm existence, giving an unauthenticated attacker a blind enumeration primitive independent of the read/write bypass.
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:N/UI:N/S:U/C:H/I:H/A:N
A lowercase HTTP method bypasses auth entirely so AV:N/AC:L/PR:N/UI:N; unauthenticated read and full create/modify/delete give C:H/I:H, with no documented availability impact (A:N).
Primary rating from Vendor (OpenNMS).
CVSS VectorVendor: OpenNMS
DescriptionCVE.org
An authorization bypass vulnerability exists in the REST API of multiple versions of OpenNMS Meridian and Horizon. The /rest/** Spring Security filter chains authorize requests with intercept-url rules that name the HTTP method as an uppercase token, compare the method case-sensitively, and have no terminal deny rule. A request that uses a non-canonical (for example lowercase) method token matches no rule and is processed without authentication. A remote, unauthenticated attacker can read the monitored inventory and can create, modify, or delete resources through the REST API, which includes injecting events to fabricate or suppress alarms. The /rest/alarms chain has the same missing deny rule and discloses whether an alarm exists through a difference in the response. The fix adds a terminal deny rule to each REST filter chain.
The solution is to upgrade to Meridian 2024.3.14, 2025.0.11, 2026.0.1 and Horizon 36.0.5 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.
Articles & Coverage 1
Executive ViewAI
OpenNMS Meridian and Horizon contain an unauthenticated authorization bypass in the REST API that allows remote attackers to read or modify monitored inventory. This affects organizations relying on these platforms for network and security monitoring, potentially undermining visibility and enabling unauthorized changes to critical monitoring resources. Although no public exploit identified at time of analysis, the critical severity and available patch warrant immediate remediation.
Apply vendor patch.
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
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
OpenNMS Horizon and Meridian allows HQL Injection in element/nodeList.htm (aka the NodeListController) via snmpParm or s
EUVD-2026-102324
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB