Skip to content

Potential to manipulate `x-envoy` headers from external sources

Moderate
phlax published GHSA-ffhv-fvxq-r6mf Sep 19, 2024

Package

Envoy

Affected versions

< 1.32.0

Patched versions

1.31.2, 1.30.6, 1.29.9, 1.28.7

Description

Summary

A security vulnerability in Envoy allows external clients to manipulate Envoy headers, potentially leading to unauthorized access or other malicious actions within the mesh.

This issue arises due to Envoy's default configuration of internal trust boundaries, which considers all RFC1918 private address ranges as internal.

Details

The default behavior for handling internal addresses in Envoy has been changed.

Previously, RFC1918 IP addresses were automatically considered internal, even if the internal_address_config was empty.

The default configuration of Envoy will continue to trust internal addresses while in this release but it will not trust them by default in next release.

If you have tooling such as probes on your private network which need to be treated as trusted (e.g. changing arbitrary x-envoy headers) please explicitly include those addresses or CIDR ranges into internal_address_config.

The default behavior is controlled by the runtime guard envoy.reloadable_features.explicit_internal_address_config, and it is
false by default. If you are good to un-trust all IPs, this can be turned on.

PoC

  • With a default edge ingress Envoy configured.
  • $ curl -k -H "X-ENVOY-ORIGINAL-PATH: /foobar" https://bookinfo-bookinfo.apps.test.cluster.net/productpage
  • X-ENVOY-ORIGINAL-PATH is trusted.

Impact:

Successful exploitation could allow attackers to bypass security controls, access sensitive data, or disrupt services within the mesh, like Istio.

Reporter

James Force
jforce@redhat.com

Mike Whale

Severity

Moderate

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N

CVE ID

CVE-2024-45806

Weaknesses

No CWEs

Credits