Cyber Resilience

CVE-2026-33130

Uptime.Kuma Uptime Kuma 1.23.0 – 2.2.1

Public PoC
Published
20 March 2026
Modified
24 March 2026
Patch / advisory
CVSS Score v3.1 6.5
Click a component to see what it means
Raw vectorCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
EPSS Score 0.0034 27th percentile
Risk Priority 50 floored blend · peak EPSS

Summary

CVE-2026-33130 is a medium-severity PHP Remote File Inclusion (CWE-98) vulnerability in Uptime.Kuma Uptime Kuma. Its CVSS base score is 6.5 (Medium).

Operationally, exploitation aligns with the MITRE ATT&CK technique Exploit Public-Facing Application (T1190); ranked at the 27th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog; a public proof-of-concept is referenced.

The strongest mitigations our analysis identified map to SA-11 (Developer Testing and Evaluation) and SI-10 (Information Input Validation) — see the control section below for these in your framework.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

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…

more

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.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1190 Exploit Public-Facing Application Initial Access
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network.
T1221 Template Injection Stealth
Adversaries may create or modify references in user document templates to conceal malicious code or force authentication attempts.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2026-32230Same product: Uptime.Kuma Uptime Kuma
CVE-2023-49276Same product: Uptime.Kuma Uptime Kuma
CVE-2023-44400Same product: Uptime.Kuma Uptime Kuma
CVE-2023-49805Same product: Uptime.Kuma Uptime Kuma
CVE-2023-49804Same product: Uptime.Kuma Uptime Kuma
CVE-2026-9498Shared CWE-1336
CVE-2024-37621Shared CWE-1336
CVE-2025-5325Shared CWE-1336
CVE-2026-27641Shared CWE-1336
CVE-2026-3714Shared CWE-1336

Affected Assets

uptime.kuma
uptime kuma
1.23.0 — 2.2.1

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)

Validate
Prove the fix (OWASP ASVS)
  • V1.3.2
  • V1.3.7
  • V1.3.10

Mitigating Controls (NIST 800-53 r5) AI

Developer testing and static analysis can discover missing filename restrictions before deployment.

Validating all inputs before they reach include/require statements directly stops untrusted filenames from being used.

Enforcing access authorizations on resources limits what an included file can reach even if a bad name is supplied.

Information-flow rules can block the loading of external or unauthorized files into the PHP process.

Security engineering principles require use of safe templating APIs and proper escaping of external input.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.PS-06 mostly match
prevents

Secure SDLC practices such as input validation and allow-listing of include paths directly prevent the weakness.

PR.PS-01 partial match
prevents

Hardened runtime configuration (e.g., allow_url_include=off) directly blocks RFI even if code is flawed.

PR.PS-05 partial match
prevents

Execution restrictions can prevent the remote payload from running, while eliminating the weakness reduces the need for such controls.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

finds

Security testing can detect RFI but does not prevent the weakness by itself.

prevents

Secure development lifecycle mandates input validation and safe include/require patterns that directly prevent remote file inclusion.

prevents

Application security requirements explicitly call for controls against injection and unsafe file operations.

prevents

Secure architecture principles reduce attack surface but do not specifically address dynamic file inclusion.

prevents

Secure coding standards directly require whitelisting and sanitization of filenames used in include/require statements.

none

Information access restriction limits what files can be read but does not address dynamic inclusion logic.

References