Skip to main content

OpenNMS Meridian CVE-2026-19135

| EUVDEUVD-2026-57718 MEDIUM
Use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection') (CWE-470)
2026-08-13 OpenNMS GHSA-q2r2-4mh9-4268
5.4
CVSS 3.1 · Vendor: OpenNMS
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate as low-privileged OpenNMS user
  2. Delivery
    Craft JEXL expression invoking getClass().forName() on whitelisted object
  3. Exploit
    Submit expression to Measurements REST API
  4. Execution
    Sandbox incorrectly authorizes call against whitelisted class
  5. Persist
    JVM loads arbitrary class (e.g., java.lang.Runtime)
  6. Impact
    Execute OS-level commands or access server data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V15 - Secure Coding and Architecture Reflection safety, class allowlisting
Exploitation Conditions

Exploitation requires a valid low-privileged OpenNMS account - the CVSS vector PR:L confirms authentication is mandatory. The Measurements REST API must be reachable by the attacker, which is the case for any user with network access to the OpenNMS web interface. No special configuration beyond a standard OpenNMS deployment is needed, as the JEXL measurement filter (with Math, StrictMath, and TreeBasedTable whitelisted) is part of the default installation. Exploitation is limited to authenticated users only (PR:N does not apply); unauthenticated exploitation is not possible. Internet-exposed deployments violate the vendor's stated deployment model but would expand the attacker pool. The attack does not require any specific OS or database configuration.

Impact

The vendor-assigned CVSS base score of 5.4 (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N) significantly understates practical impact. The C:L/I:L ratings conflict with the demonstrated ability to call Class.forName('java.lang.Runtime') - arbitrary class loading in a JVM server process realistically yields OS-level command execution, implying C:H/I:H/A:H rather than C:L/I:L. The S:U (unchanged scope) rating is defensible if exploitation stays within the JVM process boundary, but is conservative given unrestricted class loading. The CVSS AV:N/AC:L/PR:L metrics correctly capture that any authenticated user can reach the Measurements REST API over the network with no special configuration. No EPSS data was provided. No KEV listing and no public exploit code have been identified, so real-world active exploitation is unconfirmed. The vendor explicitly notes OpenNMS is intended for deployment inside private networks, which is a meaningful architectural mitigating factor: internet-exposed instances are out-of-specification but would face higher risk. Overall, internal threat actors or compromised low-privileged accounts represent a credible exploitation path warranting urgent patching despite the conservative CVSS rating.

Exploit ScenarioDerived

An authenticated low-privileged OpenNMS user submits a crafted JEXL expression such as table.getClass().forName('java.lang.Runtime') to the Measurements REST API. Because the sandbox incorrectly authorizes the forName call against the whitelisted TreeBasedTable class rather than java.lang.Class, the sandbox permits the call and the JVM loads the requested class, granting the attacker access to runtime execution primitives and potentially full server compromise. The regression tests included in PR #8754 document the exact expression patterns that constituted the bypass, serving as functional POC documentation even though no standalone exploit tool has been published.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 13, 2026

JEXL expression sandbox bypass in OpenNMS Meridian and Horizon allows a low-privileged authenticated user to load arbitrary Java classes on the server via the Measurements REST API, enabling confidentiality disclosure and integrity compromise. The flaw stems from incorrect authorization logic in OnmsJexlUberspect that checked method calls on a whitelisted class object against the whitelisted class rather than against java.lang.Class itself, allowing reflection chains such as table.getClass().forName('java.lang.Runtime') to escape the sandbox. No public exploit or CISA KEV listing has been identified at time of analysis, but the upstream GitHub PR provides regression tests that precisely document the bypass technique.

RemediationAI

Upgrade to OpenNMS Meridian 2024.3.12 or 2025.0.9, or OpenNMS Horizon 36.0.3 or newer. These versions contain the OnmsJexlUberspect fix that correctly authorizes java.lang.Class method calls against java.lang.Class itself rather than against whitelisted classes. The upstream fix is tracked at https://github.com/OpenNMS/opennms/pull/8754. If an immediate upgrade is not possible, restrict access to the Measurements REST API endpoint to trusted internal users or service accounts only, as this endpoint is the sole confirmed delivery mechanism. The vendor's own deployment guidance states OpenNMS should not be internet-facing; enforcing network-level controls (firewall rules, VPN requirement) to prevent any direct external access reduces exposure significantly. Note that restricting the REST API may impact legitimate monitoring dashboards or integrations that query measurements.

Affected VersionsENISA

Horizon 36.0.0 <36.0.3
Meridian 2024.1.0 <2024.3.12
Meridian 2025.0.0 <2025.0.9

Affected Packages

euvd horizon fix: 36.0.3
euvd meridian fix: 2024.3.12, 2025.0.9

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 are Java-based network management platforms that expose a Measurements REST API permitting JEXL (Java Expression Language) expressions for metric computation. The sandbox is enforced by OnmsJexlUberspect, a custom uberspect layer that whitelists specific classes (Math, StrictMath, TreeBasedTable). CWE-470 (Use of Externally-Controlled Input to Select Classes or Code) applies: the flaw allowed user-controlled expressions to invoke java.lang.Class methods - getName, forName, getClassLoader - on the Class object of an otherwise-whitelisted type. Because the authorization check resolved the receiver's identity as the whitelisted class rather than java.lang.Class itself, Class.forName() calls were permitted, enabling arbitrary class loading. Affected CPEs: cpe:2.3:a:the_opennms_group:meridian and cpe:2.3:a:the_opennms_group:horizon (all versions prior to the fixed releases).

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

Vendor (OpenNMS) PRIMARY 5.4 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N
vuln.today AI 8.8 HIGH

Arbitrary Java class loading via Class.forName enables OS-level code execution, making C:H/I:H/A:H appropriate; PR:L reflects mandatory authentication confirmed by CVSS vector.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (OpenNMS).

CVSS VectorVendor: OpenNMS

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

1
Patch available
Aug 13, 2026 - 06:01 EUVD

DescriptionCVE.org

A JEXL expression sandbox bypass exists in multiple versions of OpenNMS Meridian and Horizon. A low-privileged authenticated user can submit a crafted expression to the Measurements REST API that escapes the sandbox and loads arbitrary Java classes on the server. This can potentially allow an attacker to gain access to confidential information and compromise integrity.

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

EPSS Score
0.2%
Top 93% exploitable
Prevalence
Medium
network management platform with enterprise and ISP adoption
Threat Intel
1
1 sources
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment NEWS GitHub VulDB

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

27
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +27
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2023-40315 HIGH POC
8.0 Aug 17

In OpenMNS Horizon 31.0.8 and versions earlier than 32.0.2 and related Meridian versions, any user that has the ROLE_FIL

CVE-2023-0872 HIGH POC
8.0 Aug 14

The Horizon REST API includes a users endpoint in OpenMNS Horizon 31.0.8 and versions earlier than 32.0.2 on multiple pl

CVE-2021-25931 HIGH POC
8.8 May 20

In OpenNMS Horizon, versions opennms-1-0-stable through opennms-27.1.0-1; OpenNMS Meridian, versions meridian-foundation

CVE-2021-25932 MEDIUM POC
5.4 Jun 01

In OpenNMS Horizon, versions opennms-1-0-stable through opennms-27.1.0-1; OpenNMS Meridian, versions meridian-foundation

CVE-2021-25935 MEDIUM POC
5.4 May 25

In OpenNMS Horizon, versions opennms-17.0.0-1 through opennms-27.1.0-1; OpenNMS Meridian, versions meridian-foundation-2

CVE-2021-25934 MEDIUM POC
5.4 May 25

In OpenNMS Horizon, versions opennms-18.0.0-1 through opennms-27.1.0-1; OpenNMS Meridian, versions meridian-foundation-2

CVE-2026-111235 CRITICAL
9.1 Oct 15

Unauthenticated authorization bypass in the OpenNMS Meridian and Horizon REST API lets any remote attacker who can reach

CVE-2023-40313 HIGH
8.8 Aug 17

A BeanShell interpreter in remote server mode runs in OpenMNS Horizon versions earlier than 32.0.2 and in related Meridi

CVE-2021-25933 MEDIUM POC
4.8 May 20

In OpenNMS Horizon, versions opennms-1-0-stable through opennms-27.1.0-1; OpenNMS Meridian, versions meridian-foundation

CVE-2021-25929 MEDIUM POC
4.8 May 20

In OpenNMS Horizon, versions opennms-1-0-stable through opennms-27.1.0-1; OpenNMS Meridian, versions meridian-foundation

CVE-2021-3396 HIGH
8.8 Feb 17

OpenNMS Meridian 2016, 2017, 2018 before 2018.1.25, 2019 before 2019.1.16, and 2020 before 2020.1.5, Horizon 1.2 through

CVE-2021-25930 MEDIUM POC
4.3 May 20

In OpenNMS Horizon, versions opennms-1-0-stable through opennms-27.1.0-1; OpenNMS Meridian, versions meridian-foundation

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy