You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
GCP and selected cloud providers provide metadata endpoints to the local network which can be queried to extract sensitive information via authentificated accounts in uptime kuma
Moderate
louislam
published
GHSA-qjxc-h5jf-c7rjOct 13, 2025
This advisory is not classified as an issue in uptime kuma, but rather the deployment platform.
Since we don't have the resources to work around the implementations of google/... we will not fix this issue in uptime-kuma.
Users of said cloud platforms are asked to enact tighter security if their security profile requires it.
Summary
Authenticated Arbitrary Data Exposure via SSRF
Details
It was discovered that the "Add New Monitor" feature is vulnerable to authenticated arbitrary data exposure via SSRF, using "HTTP(s) - keyword" mode, an authenticated attacker can fuzz the "Keyword" field and analyze the response errors. An attacker could potentially leak sensitive arbitrary information on an internal endpoint that exposes sensitive information
PoC
In this PoC, we will exfiltrate cloud metadata since major cloud providers, including Google Cloud Platform (GCP), Amazon Web Services (AWS), and Microsoft Azure, expose instance metadata services (IMDS) via an internal IP (169.254.169.254) or designated internal domains (metadata.google.internal, 169.254.169.253 for AWS, etc.). These endpoints provide sensitive information, such as OAuth tokens, SSH keys, IAM credentials, and internal networking details, for cloud-based instances.
In our case, Uptime Kuma was deployed in Google Cloud Platform, to test this PoC it need to be deployed in some cloud environment.
GCP PoC (click to expand)
Authenticate
Add new Monitor
Set Monitor Type to HTTP(S) - Keyword
Set Headers to
{
"Metadata-Flavor": "Google"
}
Set URL to for example http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token
Set keyword to any random data
Notice in response it return the first 50 char length as mentioned in code
Now we can bruteforce for data that is long, although I'm showing PoC from the UI
Case if a character is incorrect
Case if a character is correct
But for data that is short, you can read the response, which in our case its the paths where you can check more data..
Impact
Data exposure through SSRF Vulnerability, the affected are the ones who hosts at a cloud provider
Attackers can extract temporary cloud access tokens (AWS IAM roles, GCP service accounts, Azure Managed Identity) from the metadata API, allowing unauthorized access to cloud services and infrastructure.
Attackers can retrieve sensitive metadata information, including:
If a user requires a tighter security, they needs system level firewall like ufw
kuberenetes based
If a user requires a tighter security, they should add a network policy forbidding access to said metadata service.
GKE-users can add below network policy (other cloud providers need adjustments).
The product does not perform any authentication for functionality that requires a provable user identity or consumes a significant amount of resources.
Learn more on MITRE.
The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination.
Learn more on MITRE.
Note
This advisory is not classified as an issue in uptime kuma, but rather the deployment platform.
Since we don't have the resources to work around the implementations of google/... we will not fix this issue in uptime-kuma.
Users of said cloud platforms are asked to enact tighter security if their security profile requires it.
Summary
Authenticated Arbitrary Data Exposure via SSRF
Details
It was discovered that the "Add New Monitor" feature is vulnerable to authenticated arbitrary data exposure via SSRF, using "HTTP(s) - keyword" mode, an authenticated attacker can fuzz the "Keyword" field and analyze the response errors. An attacker could potentially leak sensitive arbitrary information on an internal endpoint that exposes sensitive information
PoC
In this PoC, we will exfiltrate cloud metadata since major cloud providers, including Google Cloud Platform (GCP), Amazon Web Services (AWS), and Microsoft Azure, expose instance metadata services (IMDS) via an internal IP (169.254.169.254) or designated internal domains (metadata.google.internal, 169.254.169.253 for AWS, etc.). These endpoints provide sensitive information, such as OAuth tokens, SSH keys, IAM credentials, and internal networking details, for cloud-based instances.
In our case, Uptime Kuma was deployed in Google Cloud Platform, to test this PoC it need to be deployed in some cloud environment.
GCP PoC (click to expand)
{ "Metadata-Flavor": "Google" }http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/tokenNotice in response it return the first 50 char length as mentioned in code
Case if a character is incorrect
Case if a character is correct
But for data that is short, you can read the response, which in our case its the paths where you can check more data..
Impact
Data exposure through SSRF Vulnerability, the affected are the ones who hosts at a cloud provider
Recomended action for affected users
Docker
If a user requires a tighter security, they need to add packet filtering
https://docs.docker.com/engine/network/packet-filtering-firewalls/
nodejs
If a user requires a tighter security, they needs system level firewall like
ufwkuberenetes based
If a user requires a tighter security, they should add a network policy forbidding access to said metadata service.
GKE-users can add below network policy (other cloud providers need adjustments).