---
id: "CVE-2026-57210"
kind: "vulnerability"
aliases: ["CVE-2026-57210"]
title: "Heimdall: forwarded client IP headers accepted without validation, enabling spoofing"
severity: "high"
cvss: 7.0
epss: 0.00421
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["access-control", "heimdall", "kubernetes", "package", "self-hosted"]
not_affected_if: ["default-config", "no-trusted-proxies", "upgraded-0.17.17"]
published_at: "2026-10-23T13:17:11+00:00"
first_seen_at: "2026-10-23T21:57:33+00:00"
updated_at: "2026-10-25T12:38:50+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-57210", "first_seen_at": "2026-10-23T21:57:33+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-57210", "first_seen_at": "2026-10-25T12:38:50+00:00"}]
---

# Heimdall: forwarded client IP headers accepted without validation, enabling spoofing

When trusted_proxies is configured, Heimdall takes client IP addresses from Forwarded and X-Forwarded-For headers without checking they are valid IPs, and mis-parses quoted Forwarded values. Rules that trust these addresses can be fooled into accepting attacker-chosen client IPs.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed Heimdall version, e.g. `heimdall version` or the image tag, and compare it to `0.17.17`
- Look for `trusted_proxies` in the Heimdall configuration file; the issue only applies when it is set
- Look for rules that match on client IP addresses (Request.ClientIPAddresses)

## Fix

- Upgrade Heimdall to `0.17.17` or later
- Until upgraded, remove `trusted_proxies` if not needed, or restrict rules that depend on client IP addresses

## Timeline

- 2026-10-23T21:57:33+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-57210
- 2026-10-25T12:38:50+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-57210

## From the sources

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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
