Local File Inclusion (LFI) via Improper URL Handling in uptime-kuma's `Real-Browser` monitor
Uptime Kuma is an open source, self-hosted monitoring tool. An **Improper URL Handling Vulnerability** allows an attacker to access sensitive local files on the server by exploiting the `file:///` protocol. This vulnerability is triggered via the **"real-browser"** request type, which takes a screenshot of the URL provided by the attacker. By supplying local file paths, such as `file:///etc/passwd`, an attacker can read sensitive data from the server. This vulnerability arises because the system does not properly validate or sanitize the user input for the URL field. Specifically: 1. The URL input (``) allows users to input arbitrary file paths, including those using the `file:///` protocol, without server-side validation. 2. The server then uses the user-provided URL to make a request, passing it to a browser instance that performs the "real-browser" request, which takes a screenshot of the content at the given URL. If a local file path is entered (e.g., `file:///etc/passwd`), the browser fetches and captures the file’s content. Since the user input is not validated, an attacker can manipulate the URL to request local files (e.g., `file:///etc/passwd`), and the system will capture a screenshot of the file's content, potentially exposing sensitive data. Any **authenticated user** who can submit a URL in "real-browser" mode is at risk of exposing sensitive data through screenshots of these files. This issue has been addressed in version 1.23.16 and all users are advised to upg
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2024-56331
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 15:59 UTC · Revision 1
Source evidence
Local File Inclusion (LFI) via Improper URL Handling in uptime-kuma's `Real-Browser` monitor
core-osv · Original sourcePublished 20 Dec 2024, 19:48 UTC
Uptime Kuma is an open source, self-hosted monitoring tool. An **Improper URL Handling Vulnerability** allows an attacker to access sensitive local files on the server by exploiting the `file:///` protocol. This vulnerability is triggered via the **"real-browser"** request type, which takes a screenshot of the URL provided by the attacker. By supplying local file paths, such as `file:///etc/passwd`, an attacker can read sensitive data from the server. This vulnerability arises because the system does not properly validate or sanitize the user input for the URL field. Specifically: 1. The URL input (``) allows users to input arbitrary file paths, including those using the `file:///` protocol, without server-side validation. 2. The server then uses the user-provided URL to make a request, passing it to a browser instance that performs the "real-browser" request, which takes a screenshot of the content at the given URL. If a local file path is entered (e.g., `file:///etc/passwd`), the browser fetches and captures the file’s content. Since the user input is not validated, an attacker can manipulate the URL to request local files (e.g., `file:///etc/passwd`), and the system will capture a screenshot of the file's content, potentially exposing sensitive data. Any **authenticated user** who can submit a URL in "real-browser" mode is at risk of exposing sensitive data through screenshots of these files. This issue has been addressed in version 1.23.16 and all users are advised to upg
osv:CVE-2024-56331
Complete source record
{
"id": "25e0921fb71355bf15f7c85c27436eabade2e03576ec33e701d141118abebc65",
"url": "https://osv.dev/vulnerability/CVE-2024-56331",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Local File Inclusion (LFI) via Improper URL Handling in uptime-kuma's `Real-Browser` monitor",
"summary": "Uptime Kuma is an open source, self-hosted monitoring tool. An **Improper URL Handling Vulnerability** allows an attacker to access sensitive local files on the server by exploiting the `file:///` protocol. This vulnerability is triggered via the **\"real-browser\"** request type, which takes a screenshot of the URL provided by the attacker. By supplying local file paths, such as `file:///etc/passwd`, an attacker can read sensitive data from the server. This vulnerability arises because the system does not properly validate or sanitize the user input for the URL field. Specifically: 1. The URL input (``) allows users to input arbitrary file paths, including those using the `file:///` protocol, without server-side validation. 2. The server then uses the user-provided URL to make a request, passing it to a browser instance that performs the \"real-browser\" request, which takes a screenshot of the content at the given URL. If a local file path is entered (e.g., `file:///etc/passwd`), the browser fetches and captures the file’s content. Since the user input is not validated, an attacker can manipulate the URL to request local files (e.g., `file:///etc/passwd`), and the system will capture a screenshot of the file's content, potentially exposing sensitive data. Any **authenticated user** who can submit a URL in \"real-browser\" mode is at risk of exposing sensitive data through screenshots of these files. This issue has been addressed in version 1.23.16 and all users are advised to upg",
"evidence": "osv:CVE-2024-56331",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2024-56331",
"aliases": [
"CVE-2024-56331",
"GHSA-2qgm-m29m-cj2h"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:N/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/louislam/uptime-kuma",
"type": "GIT",
"events": [
{
"introduced": "9564550d5fd01daade5b9d0935ca2ac065ea1068"
},
{
"fixed": "5bb329fa0e8af9395911f33d5a6d6bb9b128c0f7"
},
{
"introduced": "4e144ec71ceb917fd08a1842a5f50538af8e5472"
},
{
"fixed": "6cfae01a0d3727c517afe512fc8fec1d99acf875"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "1.23.0"
},
{
"fixed": "1.23.16"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"introduced": "= 2.0.0-beta.0"
},
{
"last_affected": "= 2.0.0-beta.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandaloneSingleVersion"
},
{
"range": [
{
"fixed": "6cfae01a0d3727c517afe512fc8fec1d99acf875"
}
],
"source": "REFERENCES_COMMIT"
}
]
}
}
],
"versions": [
"= 2.0.0-beta.0",
"1.23.15",
"1.23.14",
"1.23.13",
"1.23.12",
"1.23.11",
"1.23.10",
"1.23.9",
"1.23.8",
"1.23.7",
"1.23.6",
"1.23.5",
"1.23.4",
"1.23.3",
"1.23.2",
"1.23.1",
"1.23.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-56331.json"
}
}
],
"modified": "2026-10-28T02:30:30.400772568Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/56xxx/CVE-2024-56331.json",
"https://github.com/louislam/uptime-kuma/security/advisories/GHSA-2qgm-m29m-cj2h",
"https://nvd.nist.gov/vuln/detail/CVE-2024-56331",
"https://github.com/louislam/uptime-kuma/commit/6cfae01a0d3727c517afe512fc8fec1d99acf875"
],
"provider_metadata": {
"cwe_ids": [
"CWE-22"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/56xxx/CVE-2024-56331.json"
}
},
"related_cves": [
{
"value": "CVE-2024-56331",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 497084,
"published_at": "2024-12-20T19:48:45.641+00:00"
}