Skip to main content

Heimdall EUVDEUVD-2026-108749

| CVE-2026-57209 HIGH
Improper Input Validation (CWE-20)
2026-10-23 GitHub_M GHSA-4jgr-pg2m-m988
7.0
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send request with crafted Host header
  2. Delivery
    Heimdall concatenates Host into Forwarded unsanitized
  3. Exploit
    Injected second for= entry delivered to upstream
  4. Execution
    Upstream trusts spoofed client IP
  5. Impact
    Bypass IP-based access control on protected resource

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
Exploitation Conditions

Requires Heimdall to be running in proxy mode (the Forwarded header is only constructed in that deployment mode) on a vulnerable version <= 0.17.16. The attacker sends an incoming request whose Host header contains commas or semicolons (e.g. 'Host: evil.com,for=127.0.0.1'), which Heimdall inserts verbatim into the Forwarded header after pipeline execution. The decisive limiting factor is the upstream: exploitation only yields impact when an upstream service parses the Forwarded header per RFC 7239 and makes IP-based trust/access-control decisions on the for= value by itself, without relying on Heimdall's own access-control capabilities. Heimdall itself is not compromised (no confidentiality/integrity/availability impact to the proxy), and no authentication or user interaction is needed to inject the header (PR:N/UI:N).

Impact

This is a conditional, chained access-control-bypass flaw rather than a direct compromise of Heimdall itself. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N) indicates a remote, unauthenticated trigger, but the AT:P (attack requirements present) and the VC:N/VI:N/VA:N / SC:H/SI:H split are the key signals: Heimdall's own confidentiality, integrity and availability are not affected (VC/VI/VA:N); all impact lands on the subsequent/upstream system (SC:H/SI:H), and only when that upstream parses the Forwarded header per RFC 7239 and trusts the attacker-injected for= value for access decisions. That upstream dependency is exactly why AT:P is set - the outcome is not fully under the attacker's control. No EPSS score and no KEV status were provided, so there is no evidence of active or widespread exploitation; this is NOT confirmed actively exploited. The GHSA advisory does contain concrete curl PoC commands demonstrating the injection, but the input does not mark it as confirmed working exploit code. The vendor/source assigns CVSS 7.0 and the vuln.today Decision label is this_week (not act_now/emergency), which aligns with a serious-but-conditional issue: prioritize remediation this week, especially where upstreams make IP-based trust decisions, but it is not a drop-everything network RCE.

Exploit ScenarioDerived

An attacker sends a single crafted HTTP request to a Heimdall proxy-mode endpoint with a Host header containing commas/semicolons (e.g. 'Host: evil.com,for=127.0.0.1'), which Heimdall inserts unsanitized into the Forwarded header it generates for the upstream. An upstream admin panel or internal API that trusts a for= value in the Forwarded header then treats the request as originating from a trusted internal IP, bypassing IP-based access controls. A public PoC reference (working curl commands) exists in the GHSA advisory, but it is not verified as a packaged working exploit; the CVSS 4.0 vector shows a network, low-complexity, unauthenticated trigger whose success still depends on upstream trust behavior (AT:P).

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 23, 2026

Forwarded-header injection in Heimdall (dadrus/heimdall) proxy mode up to and including 0.17.16 lets an unauthenticated remote attacker place commas and semicolons into the Host header so that Heimdall copies them verbatim into the RFC 7239 Forwarded header it sends upstream, producing attacker-controlled for= entries that can appear to originate from trusted addresses such as 127.0.0.1 or 10.0.0.1. This is a conditional, chained access-control-bypass flaw rather than a direct compromise of the proxy: Heimdall itself suffers no confidentiality, integrity or availability impact, and impact only materializes when an upstream service parses Forwarded per RFC 7239 and makes IP-based trust or allowlist decisions on the for= value on its own rather than relying on Heimdall's access-control capabilities. No authentication is required, no public exploit code was confirmed at time of analysis (the advisory supplies a curl-based proof-of-concept reference), and version 0.17.17 fixes the issue by hardening Host, Forwarded and X-Forwarded-For handling.

RemediationAI

Upgrade Heimdall to version 0.17.17 (released 2026-06-15), which hardens Host, Forwarded and X-Forwarded-For header handling per issue #3315 and commit e183d45; the release notes are at https://github.com/dadrus/heimdall/releases/tag/v0.17.17 and the advisory at https://github.com/dadrus/heimdall/security/advisories/GHSA-4jgr-pg2m-m988. No fixed version exists below 0.17.17, so deployments on 0.17.16 or earlier running in proxy mode remain exposed. Because the decisive risk factor is the upstream, review services behind Heimdall that perform IP allowlisting or trust decisions using the Forwarded for= value on their own, and either move that enforcement into Heimdall's access-control rules or configure those services not to trust client-supplied Forwarded entries until the upgrade is applied; note that this shifts enforcement responsibility to Heimdall and requires the relevant rules to exist. Where an upgrade cannot be performed immediately, restricting which upstreams receive Forwarded-derived trust, or terminating traffic through a layer that strips client-influenced Forwarded values before it reaches trust-deciding services, are the actionable interim measures, with the trade-off that legitimate client-IP logging or geo logic relying on that header will lose the original client address.

Affected VersionsENISA

Heimdall < 0.17.17

Affected Packages

go github.com/dadrus/heimdall fix: 0.17.17
euvd heimdall fix: 0.17.17

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, 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 cloud-native Identity Aware Proxy and Access Control Decision service written in Go. In proxy mode, after the matched rule pipeline executes, proxy/request_context.go builds the outgoing header with string concatenation of the form "for=" + clientIP + ";host=" + in.Host + ";proto=" + proto. Go's net/http accepts comma and semicolon characters inside Host header values and no sanitization is applied, so an attacker-supplied Host value such as 'evil.com,for=127.0.0.1' yields an outgoing header like 'Forwarded: for=1.2.3.4;host=evil.com, for=127.0.0.1;proto=http'. Because RFC 7239 Forwarded is a comma-separated list of semicolon-separated parameters, downstream parsers observe multiple entries and a service that trusts the last or any for= value will attribute the request to the spoofed address. The root cause is CWE-20 (improper input validation) of the Host header before it is echoed into a structured header, with the advisory also classifying it as CWE-74 (injection). The vulnerability is confined to proxy-mode deployments on versions <= 0.17.16; the assessed severity of CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N reflects that the attack is trivially network-reachable and needs no authentication or user interaction, but the high attack complexity and changed scope come from the dependence on upstream parsing and IP-trust behavior, not from any weakness exploitation within Heimdall itself.

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

Vendor (GitHub_M) PRIMARY 7.0 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:H/SA:N
vuln.today AI 5.4 MEDIUM

Remote unauthenticated header injection (AV:N/PR:N/UI:N) with scope change to upstream (S:C); AC:H because impact depends on the upstream trusting the injected for= value, limiting confidentiality/integrity to Low and no availability impact.

3.1 AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N
4.0 AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 23, 2026 - 14:02 EUVD
CVE Published
Oct 23, 2026 - 12:27 cve.org
HIGH 7.0

DescriptionCVE.org

Heimdall is a cloud native Identity Aware Proxy and Access Control Decision service. Prior to version 0.17.17, when Heimdall operates in proxy mode, it constructs the Forwarded HTTP header after executing the matched rule pipeline by inserting the incoming request's Host header value directly into the header string without sanitizing commas or semicolons. This allows an attacker to inject additional parameters into the Forwarded header, potentially spoofing IP addresses for upstream services. This issue has been patched in version 0.17.17.

Technical POC Analysis

CWE-20 (Improper Input Validation), also mapped by the advisory to CWE-74 (injection into a downstream-parsed element).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Heimdall proxy versions up to 0.17.16 contain a high-severity forwarded-header injection flaw that allows unauthenticated attackers to spoof trusted IP addresses in upstream requests, potentially bypassing IP-based access controls on backend services. While Heimdall itself is not compromised, organizations relying on Heimdall for access control and having upstream services that independently trust IP addresses in Forwarded headers could face unauthorized access to sensitive systems. Leadership should prioritize remediation to prevent potential security incidents and maintain compliance with security policies.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis; as interim mitigation, configure Heimdall to not forward client-supplied Host headers or sanitize Forwarded headers, and review upstream services to avoid relying on IP-based trust from Forwarded headers alone.

Threat Intelligence Overview

EPSS Score
0.5%
Top 61% exploitable
Prevalence
Low
niche cloud-native open-source identity-aware proxy, limited production adoption
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

35
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +35
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy