Skip to content

Commit f4ae20b

Browse files
authored
Clarify relationship btw MeshNetworks and ENABLE_HCM_INTERNAL_NET (#3433)
* Clarify relationship btw MeshNetworks and ENABLE_HCM_INTERNAL_NET Add comments explaining the ability to use MeshNetworks to configure Envoy's internal_address_config via ENABLE_HCM_INTERNAL_NETWORK Signed-off-by: Jackie Elliott <jaellio@microsoft.com> * Add release note Signed-off-by: Jackie Elliott <jaellio@microsoft.com> * Clarify security implications of enabling HCM internal networks and configuring MeshNetworks. Signed-off-by: Jackie Elliott <jaellio@microsoft.com> --------- Signed-off-by: Jackie Elliott <jaellio@microsoft.com>
1 parent 391fae2 commit f4ae20b

File tree

4 files changed

+60
-0
lines changed

4 files changed

+60
-0
lines changed

mesh/v1alpha1/istio.mesh.v1alpha1.pb.html

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mesh/v1alpha1/network.pb.go

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mesh/v1alpha1/network.proto

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,21 @@ message Network {
114114
// locality: us-east-1a
115115
// ```
116116
//
117+
// If `ENABLE_HCM_INTERNAL_NETWORKS` is set to true, MeshNetworks can be used to
118+
// to explicitly define the networks in Envoy's internal address configuration.
119+
// Envoy uses the IPs in the `internalAddressConfig` to decide whether or not to sanitize
120+
// Envoy headers. If the IP address is listed an internal, the Envoy headers are not
121+
// sanitized. As of Envoy 1.33, the default value for `internalAddressConfig` is set to
122+
// an empty set. Previously, the default value was the set of all private IPs. Setting
123+
// the `internalAddressConfig` to all private IPs (via Envoy's previous default behavior
124+
// or via the MeshNetworks) will leave users with an Istio Ingress Gateway potentially
125+
// vulnerable to `x-envoy` header manipulation by external sources. More information about
126+
// this vulnerability can be found here:
127+
// https://github.com/envoyproxy/envoy/security/advisories/GHSA-ffhv-fvxq-r6mf
128+
// To preserve headers, you must explicitly configure MeshNetworks and set
129+
// `ENABLE_HCM_INTERNAL_NETWORKS` to true. Envoy's `internalAddressConfig` will be set to
130+
// the endpointed specified by `fromCidr`.
131+
//
117132
message MeshNetworks {
118133
// The set of networks inside this mesh. Each network should
119134
// have a unique name and information about how to infer the endpoints in
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: release-notes/v2
2+
kind: bug-fix
3+
area: documentation
4+
issue:
5+
- https://github.com/istio/istio/issues/53402
6+
7+
releaseNotes:
8+
- |
9+
**Fixed** documentation for using MeshNetworks to configure envoy internal address configuration
10+
when ENABLE_HCM_INTERNAL_NETWORKS is set to true. As of Envoy 1.33, the default value for
11+
internalAddressConfig is set to an empty set. Previously, the default value was the set of all
12+
private IPs. To preserve Envoy headers, you must explicitly configure MeshNetworks
13+
or revert to Envoy's prior behavior by setting envoy.reloadable_features.explicit_internal_address_config
14+
to false. Setting MeshNetworks to all private IPs or reverting to Envoy's previous behavior will leave
15+
users with an Istio Ingress Gateway potentially vulnerable to x-envoy header manipulation by external
16+
sources. More information about this vulnerability can be found here: https://github.com/envoyproxy/envoy/security/advisories/GHSA-ffhv-fvxq-r6mf

0 commit comments

Comments
 (0)