Uptime Kuma: SSTI in Notification Templates Allows Arbitrary File Read (Incomplete Fix for GHSA-vffh-c9pq-4crh)
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · None · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-1336.
Summary
Uptime Kuma is an open source, self-hosted monitoring tool. In versions 1.23.0 through 2.2.0, the fix from GHSA-vffh-c9pq-4crh doesn't fully work to preventServer-side Template Injection (SSTI). The three mitigations added to the Liquid engine (root, relativeReference, dynamicPartials) only block quoted paths. If a project uses an unquoted absolute path, attackers can still read any file on the server. The original fix in notification-provider.js only constrains the first two steps of LiquidJS's file resolution (via root, relativeReference, and dynamicPartials options), but the third step, the require.resolve() fallback in liquid.node.js has no containment check, allowing unquoted absolute paths like /etc/passwd to resolve successfully. Quoted paths happen to be blocked only because the literal quote characters cause require.resolve('"/etc/passwd"') to throw a MODULE_NOT_FOUND error, not because of any intentional security measure. This issue has been fixed in version 2.2.1.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| louislam | uptime-kuma | 1.23.0 to before 2.2.1 | 2.2.1 | Patch available | CNA |
- uptime-kuma Vendorlouislam Affected 1.23.0 to before 2.2.1 Fixed in 2.2.1 Patch available CNA
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:uptime.kuma:uptime_kuma:*:*:*:*:*:*:*:* | 1.23.0 to before 2.2.1 | Vulnerable | Uptime.kuma |
- cpe:2.3:a:uptime.kuma:uptime_kuma:*:*:*:*:*:*:*:* Versions 1.23.0 to before 2.2.1 Vulnerable ·Uptime.kuma
Remediation
- Fix · CNA uptime-kuma (louislam) Fixed in 2.2.1
Timeline
- 2026-10-02 Threatist record created from CVE-2026-33130
References
More louislam vulnerabilities
- TI-2026-51249 Path traversal in louislam dockge CVSS 4.0HIGH 8.7
- TI-2024-37292 Local File Inclusion (LFI) via Improper URL Handling in uptime-kuma's `Real-Browser` monitor CVSS 3.1MEDIUM 6.8
- TI-2026-49952 Uptime Kuma Stored XSS via Matomo Analytics Site ID on Public Status Pages CVSS 3.1HIGH 8.1
- TI-2026-83016 Race condition in Uptime Kuma lets attackers create extra admins CVSS 4.0MEDIUM 6.3
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences