Summary
CVE-2026-89054 is a missing authorization vulnerability in OpenNMS Horizon that allows unauthenticated attackers to modify monitoring configuration via the /api/v2 REST API. The Spring Security policy backing this API defines authorization rules for GET, POST, PUT, and DELETE, but omits the PATCH method entirely, leaving PATCH configuration endpoints for event configuration and SNMP data collection reachable without credentials. The issue is rated HIGH severity (CVSS 8.2) because it lets an attacker persistently disable event definitions and data collection, degrading an organization’s monitoring and detection capability.
Technical details
- Root cause: The Spring Security authorization configuration for the
/api/v2REST API defines rules for most HTTP methods (GET, POST, PUT, DELETE) but does not include a rule covering PATCH requests, so no authorization check is enforced on PATCH. - Trigger conditions: An attacker with network access to the OpenNMS Horizon web/API interface sends unauthenticated PATCH requests to the affected configuration endpoints.
- Attack vector: Network-based (AV:N), low attack complexity, no privileges or user interaction required.
- Impact: Attackers can disable event definitions and SNMP data-collection sources, suppressing event/alarm generation and stopping metric collection. The changes persist and are reloaded into the running system, silently degrading monitoring and detection until identified and reverted.
Affected software
- OpenNMS Horizon versions >= 36.0.0 and < 36.0.4
Severity
- CVSS v3.1 Base Score: 8.2 (High)
- Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L
Mitigation and recommended actions
- Immediate: Upgrade OpenNMS Horizon to version 36.0.4 or later, which restores authorization enforcement on
/api/v2PATCH requests. - If no patch can be applied immediately: Ensure OpenNMS Horizon and Meridian instances are not directly exposed to the Internet — vendor installation guidance states these products are intended to run within an organization’s private network. Restrict access to the
/api/v2interface to trusted internal networks or VPN, and monitor for unexpected PATCH requests or unexplained changes to event definitions and SNMP data-collection configuration.

