Fixed
Details
Assignee
Markus von RüdenMarkus von Rüden(Deactivated)Reporter
Jeff GehlbachJeff GehlbachSprint
NoneFix versions
Affects versions
Priority
Major
Details
Details
Assignee
Markus von Rüden
Markus von Rüden(Deactivated)Reporter
Jeff Gehlbach
Jeff GehlbachSprint
None
Fix versions
Affects versions
Priority
PagerDuty
PagerDuty
PagerDuty
Created October 6, 2017 at 2:34 PM
Updated January 31, 2023 at 7:27 PM
Resolved November 17, 2017 at 3:01 AM
Impact
The application is vulnerable to reflected cross-site scripting (XSS). The requested data, which contains JavaScript code, is reflected in the response
Background
OpenNMS is a carrier-grade, highly integrated, open source platform designed for building network monitoring solutions. There are two distributions of OpenNMS: Meridian and Horizon. Using Meridian is advisable for enterprises and businesses looking for stability and long term support. Horizon is the place where innovation happens quickly and is ideal for monitoring new technologies and IT ecosystems. Both distributions are completely open source.
Technical Details
Attackers could trick users into following a link or navigating to a page that posts a malicious JavaScript statement to the vulnerable site, causing the malicious JavaScript to be rendered by the site and executed by the victim client. The JavaScript code could be used for several purposes including stealing user cookies or as a second step to hijacking a user's session. Another attack plan could include the possibility of inserting HTML instead of JavaScript to change/modify the contents of the vulnerable page, which could be used to trick the client.
A remote unauthenticated attacker could launch an XSS attack. The following requests can be used to inject the malicious payload by creating a favorite filter for alarms and/or events. The filter itself contains the malicious payload.
Events
GET /opennms/event/createFavorite?sortby=id&acktype=unack&limit=20&filter=nodenamelike%3D%3Cscript%3Ealert(2)%3C%2Fscript%3E&favoriteName=StoredXSS
Alarms
GET /opennms/alarm/createFavorite?sortby=id&acktype=unack&limit=10&filter=nodenamelike%3Dsds&favoriteName=sdsd<script>alert(123)</script>)
When the victim visits the main Events/Alarms page, where favorite filters are shown, the payload will be triggered.
Timeline
Oct 4, 2017: Researchers discovers vulnerability
Oct XX, 2017: IOActive contacts the vendor