Skip to main content

Heimdall EUVDEUVD-2026-108750

| CVE-2026-57210 HIGH
Improper Input Validation (CWE-20)
2026-10-23 GitHub_M GHSA-38x9-25wx-7fg2
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
    Reach heimdall with trusted_proxies enabled
  2. Delivery
    Inject crafted Forwarded/X-Forwarded-For header
  3. Exploit
    Parser accepts unvalidated or misparsed IP value
  4. Execution
    Spoofed ClientIPAddresses enters rule pipeline
  5. Impact
    Bypass IP-based access control or spoof upstream

Vulnerability Assessment

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

Exploitation requires that the trusted_proxies option is configured - if it is not set, heimdall ignores the Forwarded and X-Forwarded-For headers entirely and the vulnerability is not exploitable. The attacker must additionally be able to influence those forwarding headers, either by connecting directly to heimdall or through a proxy that appends rather than sanitizes/overrides them. For manipulation of rule evaluation (Scenario A) and the quoted-string misparse abuse (Scenario C), the deployment's rules must reference Request.ClientIPAddresses (e.g. a CEL authorizer using networks() for IP-range checks, or a Remote authorizer forwarding client IP); where no rule consumes this property these scenarios do not apply. In proxy mode (Scenario B), injected/malformed values are written unchanged into the X-Forwarded-For/Forwarded headers sent upstream, so impact depends on upstream services trusting that header. Limiting factors: non-default configuration (trusted_proxies) is mandatory, rule dependence on ClientIPAddresses gates the access-control-bypass path, and placing heimdall behind a proxy that overrides these headers neutralizes the attack.

Impact

This is a configuration- and rule-dependent access-control/spoofing flaw in heimdall, not a broadly critical remote-code issue. The supplied CVSS 4.0 vector (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, base 7.0) is internally telling: the vulnerable system itself has no confidentiality, integrity or availability impact (VC/VI/VA:N), and all impact falls on SUBSEQUENT systems (SC:H/SI:H) - i.e. the access-control decisions and upstream services that consume heimdall's Request.ClientIPAddresses. AT:P (attack requirements present) correctly encodes that exploitation is not universal: it requires trusted_proxies to be configured, and for the rule-evaluation scenarios, rules that actually reference Request.ClientIPAddresses. The vuln.today decision label is 'this_week' (not act_now/emergency), consistent with a meaningful but non-emergency priority. No EPSS score, no CISA KEV listing, and no exploit/PoC reference were provided in the input, so there is no signal of active or imminent exploitation - the risk is driven by exploitability of a logic/validation flaw, not by observed attacks. Net: real and worth patching promptly where the preconditions hold, but its severity is entirely gated by deployment configuration rather than being a blanket high-risk exposure. Note the Tags label this 'Information Disclosure', whereas the GHSA (CWE-116/CWE-290) frames it as IP spoofing / access-control bypass - treat the primary impact as spoofing and access-control manipulation, not data disclosure.

Exploit ScenarioDerived

A heimdall deployment has trusted_proxies configured and a rule (e.g. a CEL authorizer using networks()) that restricts access based on Request.ClientIPAddresses. An attacker who can set forwarding headers - by connecting directly to heimdall or via a proxy that does not sanitize them - sends a crafted Forwarded or X-Forwarded-For header containing a spoofed or malformed value, which is accepted without IP validation and used to appear as if originating from a trusted IP range, bypassing the intended access control. No public exploit was identified at time of analysis; only the advisory and release references are provided.

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

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

Alert me

AnalysisAIv1 – Oct 23, 2026

Client-IP spoofing in dadrus Heimdall (versions up to and including 0.17.16) lets remote attackers inject arbitrary strings, malformed IP literals, RFC 7239 'unknown' values and obfuscated identifiers into Request.ClientIPAddresses whenever the optional trusted_proxies setting is enabled, because the Forwarded (for=) and X-Forwarded-For values are never checked for syntactic validity and the Forwarded parser splits on ',' and ';' without honoring quoted strings. The practical consequence is deployment-dependent: rules that consume ClientIPAddresses (for example a CEL authorizer using networks() for IP-range checks, or a Remote authorizer forwarding the client IP) can be made to evaluate against attacker-chosen values, and in proxy mode the injected values are passed upstream unchanged in X-Forwarded-For/Forwarded headers. Exploitation is gated on non-default configuration (trusted_proxies), on attacker influence over the forwarding headers, and for the access-control path on rules actually referencing ClientIPAddresses; no public exploit code was identified at time of analysis and the issue is not in CISA KEV, with remediation available in 0.17.17.

RemediationAI

Vendor-released patch: upgrade to Heimdall 0.17.17, which hardens Host, Forwarded and X-Forwarded-For header handling (commit e183d4548f7cc9327047c64de08a207abd5c3d07, issue #3315); 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-38x9-25wx-7fg2. If upgrading cannot be done immediately, the vendor's stated workarounds are: enforce at the network level that only trusted proxies can reach heimdall directly, so attackers cannot supply their own forwarding headers; configure the fronting proxy to sanitize or override (rather than merely append to) Forwarded and X-Forwarded-For before forwarding, which neutralizes the injection but requires that the proxy is authoritative for client addressing; and avoid relying on Request.ClientIPAddresses for security-sensitive decisions - for example IP-range checks in CEL authorizers using networks() or client-IP payloads in Remote authorizers - until patched, at the cost of losing those access-control restrictions. Note that leaving trusted_proxies unset makes heimdall ignore forwarding headers entirely and closes the issue, though that configuration change may break legitimate multi-hop deployments that depend on real client IPs.

Affected VersionsENISA

Heimdall < 0.17.17

Affected Packages

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

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 3 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 Go-based cloud-native Identity Aware Proxy and Access Control Decision service that evaluates a rule pipeline (authenticators, authorizers such as CEL and Remote, finalizers) against each request. When the trusted_proxies option is configured, heimdall parses the RFC 7239 Forwarded header's for= parameter and the legacy X-Forwarded-For header to derive the client address chain and exposes it to the pipeline as Request.ClientIPAddresses. The root cause is improper input validation (CWE-20), with spoofing/trust-boundary implications (CWE-290) and improper neutralization of special elements (CWE-116): extracted values are accepted verbatim without confirming they are syntactically valid IP addresses, so arbitrary strings, malformed literals, 'unknown' tokens and obfuscated identifiers all survive into the request context. A secondary parser defect compounds this - the Forwarded parser tokenizes on ',' and ';' without implementing RFC 7239 quoted-string semantics, so a single quoted value containing embedded delimiters is split into multiple pseudo-address entries, including fragments that still carry trailing quote characters. The fix in 0.17.17 (commit e183d45, issue #3315, 'Harden Host, Forwarded and X-Forwarded-For header usage') addresses the parsing and validation behavior. The CPE cpe:2.3:a:dadrus:heimdall:*:*:*:*:*:*:*:* is broadly scoped, but the advisory and module metadata pin the vulnerable range to <= 0.17.16 and the fixed version to 0.17.17. The trigger requires the non-default trusted_proxies configuration; absent it, forwarding headers are ignored entirely.

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 7.5 HIGH

AV:N as headers are sent over the network, PR:N/UI:N since any client can set headers with no auth, AC:H because exploitation depends on the non-default trusted_proxies config and rule use, and S:C with I:H as impact lands on downstream access decisions/upstream systems.

3.1 AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:H/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:H/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:28 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 the trusted_proxies option is configured, heimdall extracts client IP addresses from the Forwarded (for= parameter) and X-Forwarded-For headers and exposes them as Request.ClientIPAddresses to the rule pipeline. However, extracted values are not validated to be syntactically valid IP addresses. Arbitrary strings, malformed IP literals, and RFC 7239 unknown values and obfuscated identifiers are accepted without further checks. In addition, the Forwarded header parser splits on , and ; without accounting for RFC 7239 quoted strings, which can cause a single quoted value to be parsed as multiple entries, with fragments - including trailing quote characters - treated as independent addresses. This issue has been patched in version 0.17.17.

Technical POC Analysis

CWE-20 (Improper Input Validation) is the primary weakness; the advisory also assigns CWE-116 (Improper Encoding/Escaping of Output) and CWE-290 (Authentication Bypass by Spoofing).

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

CVE-2026-57210 is a HIGH-severity client-IP spoofing vulnerability in dadrus Heimdall (up to 0.17.16) that allows attackers to inject arbitrary values into forwarded headers when trusted_proxies is enabled, potentially undermining IP-based access controls and enabling header injection to upstream services. Though exploitation requires non-default configuration, affected deployments could suffer unauthorized access if rules rely on client IP addresses. Leadership should prioritize identifying and patching exposed instances while planning configuration workarounds in the interim.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: disable trusted_proxies if not strictly required; if required, ensure it contains only trusted proxy IPs and enforce strict header validation at the network edge; use a reverse proxy to sanitize or reject malformed Forwarded/X-Forwarded-For headers; implement additional authorization checks for rules relying on ClientIPAddresses.

Threat Intelligence Overview

EPSS Score
0.4%
Top 65% exploitable
Prevalence
Low
niche open-source cloud-native identity-aware proxy, limited deployment footprint
Data Quality
5 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.4%
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

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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