CVE-2026-89089: OpenNMS SQL injection in shipped Asset Management JasperReports via the DATE_FORMAT parameter (ROLE_USER)
A SQL injection vulnerability exists in the JasperReports-based reporting feature of multiple versions of OpenNMS Meridian and Horizon. A low-privileged authenticated user (ROLEUSER) 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 DATEFORMAT 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.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
OpenNMS Meridianto a version that resolves this vulnerability.Fixed in 2024.3.13 - Upgrade
Upgrade
OpenNMS Meridianto a version that resolves this vulnerability.Fixed in 2025.0.10 - Upgrade
Upgrade
OpenNMS Horizonto a version that resolves this vulnerability.Fixed in 36.0.4
Event History
Frequently Asked Questions
Who can exploit this issue in a typical deployment?
An authenticated user with the low-privilege ROLE_USER role can exploit it. The affected reports are shipped and enabled by default, but OpenNMS is intended to be deployed on private organizational networks rather than exposed directly to the Internet.
What access and interface does an attacker need?
The attacker needs valid ROLE_USER-level authentication and access to the reporting REST API. They can invoke POST /rest/reports/{id} for the affected shipped reports and provide a malicious DATE_FORMAT parameter.
What is the impact of successful exploitation?
An attacker can execute arbitrary SQL against the OpenNMS database and read arbitrary database data. This may include stored provisioning and notification credentials and SNMP community strings.
Which versions address the issue?
Upgrade to Meridian 2024.3.13, 2025.0.10, or newer, or to Horizon 36.0.4 or newer.