Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLure victim to malicious page
-
DeliveryBrowser auto-sends CSRF POST /test_config
-
ExploitServer Guzzle client fetches attacker URL
-
ExecutionSSRF reaches internal host/169.254.169.254
-
ImpactExfiltrate port oracle and partial data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the POST /test_config and/or GET /get_stats endpoints (the enhanced-application test and live-stats features backed by SupportedApps::execute()) to be reachable and, per the description, accessible via CSRF in a given installation - the author explicitly scopes this to 'some realistic installations,' so it is not universal across all deployments. A victim with network reachability to the Heimdall instance must be tricked into loading attacker-controlled content (UI:R), since the request is delivered through their browser rather than by direct attacker authentication. The impact of the cloud-metadata vector (169.254.169.254) is further conditioned on Heimdall running on a cloud instance exposing an unauthenticated metadata service. Limiting factors: mandatory user interaction, dependence on the test/stats endpoints being CSRF-reachable in that specific install (AC:H), and confidentiality-only impact limited to a status/port oracle plus partial response data. |
| Impact | This is a genuine but low-urgency issue, not a high-priority emergency. The CVSS base score is only 3.4, and the input vector (CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:N/A:N) is internally consistent with the description: network-reachable (AV:N) but requiring both high attack complexity (AC:H, reflecting the 'in some realistic installations' caveat) and user interaction (UI:R, reflecting the CSRF delivery vector), with only low confidentiality impact (C:L, a status/port oracle plus partial response data) and no integrity or availability impact. Exploitation status is 'publicly available exploit code exists' - a POC repo (kashishtopi/heimdall-unauth-ssrf) is referenced - but there is NO CISA KEV listing and NO EPSS score in the provided data, so there is no evidence of active or widespread exploitation; POC availability must not be conflated with in-the-wild use. The 'unauthenticated' framing is accurate per PR:N, but note the attacker does not directly authenticate - exploitation is laundered through a victim's browser via CSRF, which materially lowers real-world reliability. The main legitimate concern is the cloud-metadata angle (169.254.169.254), which could expose IAM credentials if Heimdall runs on a cloud instance, but that is an environment-dependent amplifier rather than a property of the base flaw. Missing signals: EPSS and KEV are both absent from input - treat exploitation likelihood as low-to-moderate and targeted, not mass-scanning. |
| Exploit ScenarioDerived | An attacker crafts a malicious web page that auto-submits a POST to /test_config (or triggers GET /get_stats) on a victim's reachable Heimdall instance and lures a user who can reach that instance into visiting it. Because SupportedApps::execute() uses a GuzzleHttp client with no IP restrictions, the server is coerced into contacting an attacker-chosen internal host/port - including the cloud metadata endpoint 169.254.169.254 - returning a status/port oracle and partial response data. A public POC (kashishtopi/heimdall-unauth-ssrf) exists, but the AC:H/UI:R requirements mean success depends on a reachable instance and a cooperating victim browser. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
Server-side request forgery in LinuxServer Heimdall through 2.8.3 lets an unauthenticated attacker coerce the server into issuing HTTP requests to arbitrary internal hosts and ports, including the cloud metadata address 169.254.169.254, by inducing a victim with network reachability to the instance to load attacker-controlled content that triggers the CSRF-reachable POST /test_config or GET /get_stats endpoints (CVSS 3.1 base score 3.4, vector AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:N/A:N). Publicly available exploit code exists, but there is no indication of confirmed active exploitation, and the author scopes the CSRF exposure to only 'some realistic installations' where those endpoints are reachable. The realistic impact is a status/port oracle plus partial response data - not full response exfiltration - and the cloud-metadata path additionally requires Heimdall to run on an instance exposing an unauthenticated metadata service.
RemediationAI
No vendor-released patch was identified at time of analysis, so remediation must initially rely on compensating controls. The most direct mitigation is to remove network access to the vulnerable functionality: place Heimdall behind a reverse proxy or authentication layer that requires credentials and validates the Origin/Referer and CSRF token for POST /test_config and GET /get_stats, and disable the enhanced-application test and live-statistics features if they are not needed - the trade-off is loss of per-application health/status reporting in the dashboard. Enforce outbound egress filtering from the Heimdall host so that requests to link-local (169.254.0.0/16, especially 169.254.169.254) and internal RFC1918/link-local ranges are dropped, which contains the SSRF primitive at the cost of potentially breaking legitimate probes of internal services that the dashboard is expected to reach; where legitimate internal probing is required, allowlist only the specific service hosts and ports rather than permitting arbitrary destinations. On cloud hosts, require instance metadata service v2 (IMDSv2, session-token based) so that a blind SSRF cannot retrieve metadata credentials, and run the container with a network policy that denies unnecessary outbound flows. The public proof-of-concept at https://github.com/kashishtopi/heimdall-unauth-ssrf can be used to verify each mitigation, and administrators should monitor the upstream Heimdall repository (https://github.com/linuxserver/Heimdall/blob/9ad5864a80d7025db1e6eab8eb2981c165b0ddff/app/SupportedApps.php) for a fixed release before removing these restrictions.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Heimdall is a PHP application-dashboard/launcher maintained by LinuxServer.io that stores links to self-hosted services and can actively probe them ('enhanced' application tests and live statistics). The root cause is CWE-918 (Server-Side Request Forgery): the codebase implements a SafeUrlFetcher guard that validates destinations against internal IP ranges, but that guard is wired only into ItemController. The enhanced-application test and live-stats code paths instead run through SupportedApps::execute(), which instantiates a GuzzleHttp client with no IP-address restrictions, so URLs supplied through those paths are fetched without the intended private/link-local address filtering. Because the POST /test_config and GET /get_stats routes are, in some deployments, reachable without authentication and without robust CSRF protection, an attacker who gets a victim's browser to issue those requests can drive the server-side Guzzle client toward internal hosts and arbitrary ports - most notably the link-local cloud metadata endpoint 169.254.169.254. The primary observable outcomes are a port/status oracle (differing responses for open, closed, or filtered ports) and partial response bodies, which is consistent with the assessed confidentiality-only, low-impact vector and the CVSS scope change (S:C) arising from the server acting as a proxy into other trust boundaries.
Know when Heimdall gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:N/A:N
CSRF delivery forces UI:R and PR:N; conditional endpoint reachability makes AC:H; SSRF crosses into internal systems so S:C with only oracle/partial-data read as C:L.
Primary rating from Vendor (mitre).
CVSS VectorVendor: mitre
DescriptionCVE.org
linuxserver Heimdall through 2.8.3 applies its SafeUrlFetcher SSRF protection mechanism only to ItemController; the enhanced-application test and live-stats requests occur via SupportedApps::execute(), a GuzzleHttp client that lacks IP address restrictions. In some realistic installations, the POST /test_config (and GET /get_stats) endpoints are accessible through CSRF, and thus an unauthenticated attacker can force the server to send requests to arbitrary internal hosts and ports (including 169.254.169.254) and read a status/port oracle in addition to partial response data.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.
Authorization bypass in Heimdall cloud-native Identity Aware Proxy allows remote unauthenticated attackers to circumvent
Heimdall's case-sensitive host matching bypasses access control policies when attackers submit HTTP requests with altern
Authorization bypass in Heimdall cloud-native Identity Aware Proxy affects versions prior to 0.17.14 due to case-sensiti
Server-Side Request Forgery in MITRE SAF Heimdall 2.11.6 through 2.13.x allows unauthenticated remote attackers to reach
EUVD-2026-94738
GHSA-hrj5-rw8j-34qj
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB