Vulnerabilities in pkg:npm/uptime-kuma
PACKAGECVE-2026-32230 is a MODERATE (CVSS 5.3) uptime kuma is missing authorization vulnerability (CWE-862: Missing Authorization) affecting Uptime kuma libraries in the npm ecosystem. The issue involves uptime kuma is missing authorization checks on ping badge endpoint, leaks ping times of monitors without needing to be on a status page. Remediation is available by upgrading affected packages to version 2.2.0.
pkg:npm/uptime-kuma
Vulnerability advisories affecting package pkg:npm/uptime-kuma. Select an advisory below to view technical details or fixes.
| Advisory ID | CVE / NVD | Severity | Summary |
|---|---|---|---|
| GHSA-c7hf-c5p5-5g6h | CVE-2026-32230 | MODERATE | Uptime Kuma is Missing Authorization Checks on Ping Badge Endpoint, Leaks Ping times of monitors without needing to be on a status page |
| GHSA-vffh-c9pq-4crh | - | MODERATE | Uptime Kuma Server-side Template Injection (SSTI) in Notification Templates Allows Arbitrary File Read |
| GHSA-hx7h-9vf7-5xhg | CVE-2025-26042 | MODERATE | Uptime Kuma's Regular Expression in pushdeeer and whapi file Leads to ReDoS Vulnerability Due to Catastrophic Backtracking |
| GHSA-3rw8-4xrq-3f7p | - | MODERATE | Duplicate Advisory: Uptime Kuma ReDoS vulnerability |
| GHSA-2qgm-m29m-cj2h | CVE-2024-56331 | MODERATE | uptime-kuma vulnerable to Local File Inclusion (LFI) via Improper URL Handling in `Real-Browser` monitor |
| GHSA-7grx-f945-mj96 | CVE-2023-36821 | HIGH | Uptime Kuma vulnerable to authenticated remote code execution via malicious plugin installation |
| GHSA-vr8x-74pm-6vj7 | CVE-2023-36822 | MODERATE | Uptime Kuma's authenticated path traversal via plugin repository name may lead to unavailability or data loss |
| GHSA-23q2-5gf8-gjpp | - | LOW | Enabling Authentication does not close all logged in socket connections immediately |
| GHSA-88j4-pcx8-q4q3 | CVE-2023-49804 | MODERATE | Password Change Vulnerability |
| GHSA-v4v2-8h88-65qj | CVE-2023-49276 | MODERATE | Attribute Injection leading to XSS(Cross-Site-Scripting) |
| GHSA-hfxh-rjv7-2369 | - | MODERATE | Uptime Kuma Authenticated remote code execution via TailscalePing |
| GHSA-g9v2-wqcj-j99g | CVE-2023-44400 | HIGH | Uptime Kuma has Persistentent User Sessions |
CVE-2026-32230 at a Glance
Security Impact
CVSS: 5.3
The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N).
How to Fix CVE-2026-32230
To remediate this vulnerability, upgrade all affected Uptime kuma dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
npm install uptime-kuma@2.2.0
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
npm ls uptime-kuma
How to Check if You Are Affected
To determine whether your Node.js application is affected by CVE-2026-32230, inspect your project dependencies using npm:
npm ls uptime-kuma
Analyze the terminal output to locate any version of Uptime kuma in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 2.2.0), your application is affected.
Note: The npm ls uptime-kuma command inspects dependencies declared in your package.json and lockfile; it does not perform automated runtime dynamic scanning.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-862: Missing Authorization, where the product does not perform an authorization check when an actor attempts to access a resource or perform an action. In Uptime kuma, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2026-32230 Affected Uptime kuma Versions
1 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
uptime-kuma
|
npm |
≥ 2.0.0
< 2.2.0
|
2.2.0
|
References
Frequently Asked Questions
What is CVE-2026-32230?
Which Uptime kuma versions are affected?
What version fixes CVE-2026-32230?
Is uptime-kuma affected?
What is the CVSS score of CVE-2026-32230?
What CWE is associated with CVE-2026-32230?
How can I check npm dependencies for CVE-2026-32230?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-c7hf-c5p5-5g6h",
"modified" : "2026-03-13T13:35:38Z",
"published" : "2026-03-12T14:47:39Z",
"aliases" : [ "CVE-2026-32230" ],
"summary" : "Uptime Kuma is Missing Authorization Checks on Ping Badge Endpoint, Leaks Ping times of monitors without needing to be on a status page",
"details" : "## Summary\n\nThe `GET /api/badge/:id/ping/:duration?` endpoint in `server/routers/api-router.js` does not verify that the requested monitor belongs to a public group. All other badge endpoints check `AND public = 1` in their SQL query before returning data. The ping endpoint skips this check entirely, allowing unauthenticated users to extract average ping/response time data for private monitors.\n\n## Affected Code\n\nFile: `server/routers/api-router.js`, approximately line 304\n\nThe ping badge endpoint directly calls `UptimeCalculator.getUptimeCalculator(requestedMonitorId)` without first checking if the monitor is public. Compare with the status badge endpoint (~line 148) which correctly queries:\n```sql\nSELECT monitor_group.monitor_id FROM monitor_group, `group`\nWHERE monitor_group.group_id = `group`.id\nAND monitor_group.monitor_id = ?\nAND public = 1\n```\n\n## Protected vs Vulnerable Endpoints\n\n| Endpoint | Has public=1 check? |\n|----------|-------------------|\n| /api/badge/:id/status | Yes |\n| /api/badge/:id/uptime/:duration? | Yes |\n| /api/badge/:id/avg-response/:duration? | Yes |\n| /api/badge/:id/cert-exp | Yes |\n| /api/badge/:id/response | Yes |\n| /api/badge/:id/ping/:duration? | **No — vulnerable** |\n\n## PoC\n\n1. Install Uptime Kuma (tested on latest v2 stable via Docker)\n2. Create an HTTP(s) monitor (e.g., monitoring http://localhost:3001)\n3. Do NOT add the monitor to any public status page or group\n4. Wait for heartbeats to accumulate (~5 minutes)\n5. Query unauthenticated:\n```bash\ncurl http://localhost:3001/api/badge/1/status → returns N/A (correct, monitor is private)\ncurl http://localhost:3001/api/badge/1/ping/24 → returns \"Avg. Ping (24h): 10ms\" (LEAKED)\n```\n\n## Impact\n\nAn unauthenticated attacker can:\n- Enumerate private monitor IDs\n- Extract average response time data for private monitors\n- Infer existence and reachability of internal monitored services\n\n## Suggested Fix\n\nAdd the same public monitor check before the UptimeCalculator call:\n```javascript\nlet publicMonitor = await R.getRow(`\n SELECT monitor_group.monitor_id FROM monitor_group, \\`group\\`\n WHERE monitor_group.group_id = \\`group\\`.id\n AND monitor_group.monitor_id = ?\n AND public = 1\n`, [requestedMonitorId]);\n\nif (!publicMonitor) {\n badgeValues.message = \"N/A\";\n badgeValues.color = badgeConstants.naColor;\n}\n```\n\n<img width=\"1228\" height=\"710\" alt=\"Screenshot 2026-02-24 at 4 49 40 PM\" src=\"https://github.com/user-attachments/assets/80aeae2d-be08-449f-8b39-c50da7aaedba\" />\n\n<img width=\"1271\" height=\"770\" alt=\"File Alons til View He\" src=\"https://github.com/user-attachments/assets/d50c9a00-282a-4b79-b5e1-f77afde9223a\" />",
"severity" : [ {
"type" : "CVSS_V3",
"score" : "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "npm",
"name" : "uptime-kuma"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "2.0.0"
}, {
"fixed" : "2.2.0"
} ]
} ],
"database_specific" : {
"last_known_affected_version_range" : "<= 2.1.3"
}
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/louislam/uptime-kuma/security/advisories/GHSA-c7hf-c5p5-5g6h"
}, {
"type" : "ADVISORY",
"url" : "https://nvd.nist.gov/vuln/detail/CVE-2026-32230"
}, {
"type" : "WEB",
"url" : "https://github.com/louislam/uptime-kuma/issues/7038"
}, {
"type" : "WEB",
"url" : "https://github.com/louislam/uptime-kuma/issues/7135"
}, {
"type" : "WEB",
"url" : "https://github.com/louislam/uptime-kuma/commit/303a609c05d0b174a5045c90f53c2b557d4febae"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/louislam/uptime-kuma"
}, {
"type" : "WEB",
"url" : "https://github.com/louislam/uptime-kuma/releases/tag/2.2.0"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-862" ],
"severity" : "MODERATE",
"github_reviewed" : true,
"github_reviewed_at" : "2026-03-12T14:47:39Z",
"nvd_published_at" : "2026-03-12T19:16:16Z"
}
}