Skip to main content

OpenNMS CVE-2026-89089

| EUVDEUVD-2026-75729 MEDIUM
SQL Injection (CWE-89)
2026-09-10 OpenNMS GHSA-fcjx-6cv6-5wqj
6.5
CVSS 3.1 · Vendor: OpenNMS
View

Attack ChainAIDerived

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

  1. Access
    Obtain or compromise ROLE_USER credentials
  2. Delivery
    POST crafted DATE_FORMAT payload to /rest/reports/{AssetManagementMaintExpired or AssetManagementMaintStrategy}
  3. Exploit
    JasperReports substitutes raw parameter into PostgreSQL to_date()
  4. Execution
    UNION-based injection executes with application DB privileges
  5. Persist
    Extract SNMP strings and device credentials
  6. Impact
    Pivot to monitored network infrastructure

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Parameterized queries, prepared statements
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Persistence

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 OpenNMS user account with at least ROLE_USER privileges - the lowest default role, commonly assigned to read-only staff and automated service accounts. The attacker must be able to reach the OpenNMS REST API endpoint POST /rest/reports/{id} over the network. The two vulnerable reports (AssetManagementMaintExpired and AssetManagementMaintStrategy) must be present on the instance, which they are in all default deployments. No non-default configuration, special feature flag, or elevated privilege beyond ROLE_USER is required. Exploitation is bounded by: (1) the requirement for a valid authenticated session (PR:L) - unauthenticated exploitation is not possible; (2) the read-only nature of the injected SQL - direct data modification via this path is not established; and (3) the vendor's stated deployment model of internal-network-only, which limits external exposure but does not protect against insiders or attackers who have already achieved a foothold.

Impact

The vendor-assigned CVSS 6.5 with vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N is a well-calibrated assessment of this vulnerability. Authentication as ROLE_USER is the single meaningful barrier - it is the lowest built-in role in OpenNMS, routinely assigned to read-only monitoring staff and service accounts. Attack complexity is genuinely low once authenticated: two specific default-enabled report IDs and the injectable parameter name are now publicly documented in the patch diff. The read-only nature of the injection (I:N/A:N) limits direct write-side damage, but C:H is fully justified because the OpenNMS database stores SNMP community strings and credentials for every device under management, yielding a network-wide credential cache from a single low-privilege SQL read. No EPSS data, no CISA KEV listing, and no standalone POC are present in the input data, so exploitation probability cannot be precisely quantified; however, the transparent patch diff effectively serves as a vulnerability blueprint. The vendor's deployment guidance that Meridian and Horizon should be on internal networks reduces external exposure but does not address the insider or pivot-attacker scenario, which is the realistic threat model here.

Exploit ScenarioDerived

An attacker holding a low-privilege ROLE_USER credential - for example, a compromised read-only monitoring account or a malicious insider - issues a POST request to /rest/reports/AssetManagementMaintExpired with a DATE_FORMAT value such as 'YYYY') UNION SELECT community_string FROM snmpinterface-- that closes the to_date() string argument and injects a UNION-based payload. JasperReports substitutes the value literally into the PostgreSQL query before execution, returning SNMP community strings and device credentials embedded in the rendered report. The attacker uses those credentials to authenticate directly to monitored network infrastructure, pivoting laterally across the managed environment.

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 – Sep 10, 2026

SQL injection in the JasperReports reporting engine of OpenNMS Meridian and Horizon allows any authenticated ROLE_USER to execute arbitrary SQL against the OpenNMS PostgreSQL database by supplying a crafted DATE_FORMAT parameter to two default-enabled asset-management reports via the REST API. The database exposure includes SNMP community strings, provisioning credentials, and notification credentials for every monitored device - high-value intelligence enabling lateral movement across the managed network. No public exploit is identified at time of analysis, but the upstream patch diff on GitHub PR #8832 publicly names the vulnerable parameters and report IDs, substantially lowering the bar for exploit development.

RemediationAI

Upgrade to OpenNMS Meridian 2024.3.13 or 2025.0.10, or OpenNMS Horizon 36.0.4 or newer, per vendor guidance reflected in GitHub PR #8832 (https://github.com/OpenNMS/opennms/pull/8832). If immediate patching is blocked, the most precise compensating control is to restrict access to the reporting REST API endpoint (POST /rest/reports/{id}) via reverse-proxy ACL or firewall rules, which disables online report generation for ROLE_USER accounts but has no effect on other OpenNMS functions. Alternatively, revoke reporting permissions from ROLE_USER accounts that do not require them - noting this changes access control for all reports, not only the two vulnerable ones. Consistent with vendor deployment guidance, ensure the OpenNMS instance is not directly reachable from untrusted networks, which reduces the attacker pool to authenticated insiders and post-compromise pivots.

Affected VersionsENISA

Horizon 36.0.0 <36.0.4
Meridian 2024.1.0 <2024.3.13
Meridian 2025.0.0 <2025.0.10

Affected Packages

euvd horizon fix: 36.0.4
euvd meridian fix: 2024.3.13, 2025.0.10

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 uses JasperReports for built-in online report generation. JasperReports JRXML templates support two parameter substitution modes: the safe parameterized form $P{param} (which binds values via prepared statements) and the unsafe raw-literal form $P!{param} (which substitutes the user-supplied value directly into the query string before execution). The two vulnerable templates, AssetManagementMaintExpired.jrxml and AssetManagementMaintStrategy.jrxml, used $P!{DS_DATE_FORMAT} and $P!{DATE_FORMAT} to insert a user-controlled date format string as the second argument to PostgreSQL's to_date() function - creating a classic in-string SQL injection point. The fix in PR #8832 replaces every $P!{} occurrence with $P{} parameterized binding and also converts interval construction from a raw string-interpolated INTERVAL '$P!{DAYS} days' to the PostgreSQL function make_interval(days => $P{DAYS}), closing both injection surfaces. Affected CPEs are cpe:2.3:a:the_opennms_group:meridian:*:*:*:*:*:*:*:* and cpe:2.3:a:the_opennms_group:horizon:*:*:*:*:*:*:*:* across all pre-fix versions. CWE-89 (Improper Neutralization of Special Elements used in an SQL Command) is the correct root-cause classification.

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 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 6.5 MEDIUM

REST API is network-accessible; ROLE_USER auth required (PR:L); injection is read-only (I:N/A:N); full database read including secrets justifies C:H.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/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
High
Integrity
None
Availability
None

DescriptionCVE.org

A SQL injection vulnerability exists in the JasperReports-based reporting feature of multiple versions of OpenNMS Meridian and Horizon. A low-privileged authenticated user (ROLE_USER) can run the shipped, default-enabled online reports "Maintenance contracts expired" (AssetManagementMaintExpired) and "Maintenance contracts strategy" (AssetManagementMaintStrategy) via the reporting REST API (POST /rest/reports/{id}) and supply a DATE_FORMAT parameter that the report templates substitute literally, un-escaped, into their SQL queries. This lets an attacker execute arbitrary SQL against the OpenNMS database and read arbitrary data, including database-stored secrets such as provisioning and notification credentials and SNMP community strings.

The solution is to upgrade to Meridian 2024.3.13, 2025.0.10 and Horizon 36.0.4 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 88% exploitable
Prevalence
Low
niche open-source NMS, enterprise and ISP segment only
Data Quality
6 sources
Confidence: High

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

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

Attack Technique

SQL injection exploits the way applications construct database queries by mixing user input directly into SQL statements.

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