CVE-2026-71285 PUBLISHED

Uptime Kuma Stored XSS via Matomo Analytics Site ID on Public Status Pages

Assigner: TuranSec
Reserved: 05.08.2026 Published: 05.08.2026 Updated: 05.08.2026

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.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:H/A:N
CVSS Score: 8.1

Product Status

Vendor louislam
Product uptime-kuma
Versions Default: unaffected
  • affected from 0 to 2.4.0 (incl.)

Credits

  • Alibek Baxtiyorov finder

References

Problem Types

  • CWE-79 CWE