Uptime Kuma Stored XSS via Matomo Analytics Site ID on Public Status Pages
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| louislam | uptime-kuma | unaffected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Louislam | Uptime-kuma |
|
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.382% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| Description | 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. | Uptime Kuma's Matomo analytics integration (server/analytics/matomo-analytics.js) injects the admin-configurable Matomo value as a bare, unquoted JavaScript expression inside a <script> block rendered on every public status page. A siteId value such as , 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. |
| Title | Uptime Kuma - Stored XSS via Matomo Analytics Site ID on Public Status Pages | Uptime Kuma Stored XSS via Matomo Analytics Site ID on Public Status Pages |
| Type | Values Removed | Values Added |
|---|---|---|
| Title | Uptime Kuma Stored XSS via Matomo Analytics Site ID on Public Status Pages | Uptime Kuma - Stored XSS via Matomo Analytics Site ID on Public Status Pages |
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Louislam
Louislam uptime-kuma |
|
| Vendors & Products |
Louislam
Louislam uptime-kuma |
| Type | Values Removed | Values Added |
|---|---|---|
| Description | 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. | |
| Title | Uptime Kuma Stored XSS via Matomo Analytics Site ID on Public Status Pages | |
| Weaknesses | CWE-79 | |
| References |
| |
| Metrics |
cvssV3_1
|