8.1 HIGH
- CVSS version (CVSS): 3.1
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): High (H)
- User Interaction (UI): Required (R)
- Scope (S): Changed (C)
- Confidentiality (C): High (H)
- Integrity (I): High (H)
- Availability (A): None (N)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): Low (L)
- Modified Privileges Required (MPR): High (H)
- Modified User Interaction (MUI): Required (R)
- Modified Confidentiality (MC): High (H)
- Modified Scope (MS): Changed (C)
- Modified Integrity (MI): High (H)
- Modified Availability (MA): None (N)
Activity log
- Created suggestion
Uptime Kuma Stored XSS via Matomo Analytics Site ID on Public Status Pages
Uptime Kuma's Matomo analytics integration (server/analytics/matomo-analytics.js) injects the admin-configurable Matomo `siteId` value as a bare, unquoted JavaScript expression inside a <script> block rendered on every public status page: `_paq.push(['setSiteId', ${escapedSiteIdHTMLAttribute}]);`. The escaping pipeline used (jsesc with isScriptContext:true, then html-escaper.escape()) does not escape the characters `]`, `)`, `;`, `(`, which are sufficient to break out of the array/push expression context. A siteId value such as `1]);alert(document.cookie)//`, once saved by an editor/admin, executes arbitrary JavaScript for every unauthenticated visitor of the public /status/<slug> page, enabling session-cookie theft and full page takeover.
References
Affected products
- =<2.4.0
Matching in nixpkgs
pkgs.uptime-kuma
Fancy self-hosted monitoring tool
pkgs.python313Packages.uptime-kuma-api
Python wrapper for the Uptime Kuma Socket.IO API
pkgs.python314Packages.uptime-kuma-api
Python wrapper for the Uptime Kuma Socket.IO API
pkgs.gnomeExtensions.uptime-kuma-indicator
Displays the status of an Uptime Kuma instance in the panel.
pkgs.python313Packages.uptime-kuma-monitor
Python wrapper around UptimeKuma /metrics endpoint
Package maintainers
-
@honnip Jung seungwoo <me@honnip.page>
-
@JulienMalka Julien Malka <julien.malka@me.com>
-
@fabaff Fabian Affolter <mail@fabian-affolter.ch>
-
@felixsinger Felix Singer <felixsinger@posteo.net>