CVE-2021-39155
Authorization Policy Bypass Due to Case Insensitive Host Comparison
Istio is an open source platform for providing a uniform way to integrate microservices, manage traffic flow across microservices, enforce policies and aggregate telemetry data. According to RFC 4343, Istio authorization policy should compare the hostname in the HTTP Host header in a case insensitive way, but currently the comparison is case sensitive. The proxy will route the request hostname in a case-insensitive way which means the authorization policy could be bypassed. As an example, the user may have an authorization policy that rejects request with hostname "httpbin.foo" for some source IPs, but the attacker can bypass this by sending the request with hostname "Httpbin.Foo". Patches are available in Istio 1.11.1, Istio 1.10.4 and Istio 1.9.8. As a work around a Lua filter may be written to normalize Host header before the authorization check. This is similar to the Path normalization presented in the Security Best Practices guide.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
8.3
Authorization Policy Bypass Due to Case Insensitive Host Comparison
Istio is an open source platform for providing a uniform way to integrate microservices, manage traffic flow across microservices, enforce policies and aggregate telemetry data. According to RFC 4343, Istio authorization policy should compare the hostname in the HTTP Host header in a case insensitive way, but currently the comparison is case sensitive. The proxy will route the request hostname in a case-insensitive way which means the authorization policy could be bypassed. As an example, the user may have an authorization policy that rejects request with hostname "httpbin.foo" for some source IPs, but the attacker can bypass this by sending the request with hostname "Httpbin.Foo". Patches are available in Istio 1.11.1, Istio 1.10.4 and Istio 1.9.8. As a work around a Lua filter may be written to normalize Host header before the authorization check. This is similar to the Path normalization presented in the Security Best Practices guide.
- Record
CVE-2021-39155- CVSS 3.1
- 8.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:L - Weakness
- CWE-178
- Updated
- 2026-11-02
EUVDEUVD-2021-1611
8.3
Istio is an open source platform for providing a uniform way to integrate microservices, manage traffic flow across microservices, enforce policies and aggregate telemetry data. According to RFC 4343, Istio authorization policy should compare the hostname in the HTTP Host header in a case insensitive way, but currently the comparison is case sensitive. The proxy will route the request hostname in a case-insensitive way which means the authorization policy could be bypassed. As an example, the user may have an authorization policy that rejects request with hostname "httpbin.foo" for some source IPs, but the attacker can bypass this by sending the request with hostname "Httpbin.Foo". Patches are available in Istio 1.11.1, Istio 1.10.4 and Istio 1.9.8. As a work around a Lua filter may be written to normalize Host header before the authorization check. This is similar to the Path normalization presented in the Security Best Practices guide.
- Record
EUVD-2021-1611- CVSS 3.1
- 8.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:L - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-7774-7vr3-cc8j
8.3
Authorization Policy Bypass Due to Case Insensitive Host Comparison
Impact
According to RFC 4343, Istio authorization policy should compare the hostname in the HTTP Host header in a case insensitive way, but currently the comparison is case sensitive. The Envoy proxy will route the request hostname in a case-insensitive way which means the authorization policy could be bypassed.
As an example, the user may have an authorization policy that rejects request with hostname "httpbin.foo" for some source IPs, but the attacker can bypass this by sending the request with hostname "Httpbin.Foo".
Patches
- Istio 1.11.1 and above
- Istio 1.10.4 and above
- Istio 1.9.8 and above
Workarounds
A Lua filter may be written to normalize Host header before the authorization check. This is similar to the Path normalization presented in the Security Best Practices guide.
References
More details can be found in the Istio Security Bulletin.
For more information
If you have any questions or comments about this advisory, please email us at [email protected]
- Record
GHSA-7774-7vr3-cc8j- CVSS 3.1
- 8.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:L - Weakness
- CWE-178
- Updated
- 2026-11-02
NVD
8.3
Istio is an open source platform for providing a uniform way to integrate microservices, manage traffic flow across microservices, enforce policies and aggregate telemetry data. According to RFC 4343, Istio authorization policy should compare the hostname in the HTTP Host header in a case insensitive way, but currently the comparison is case sensitive. The proxy will route the request hostname in a case-insensitive way which means the authorization policy could be bypassed. As an example, the user may have an authorization policy that rejects request with hostname "httpbin.foo" for some source IPs, but the attacker can bypass this by sending the request with hostname "Httpbin.Foo". Patches are available in Istio 1.11.1, Istio 1.10.4 and Istio 1.9.8. As a work around a Lua filter may be written to normalize Host header before the authorization check. This is similar to the Path normalization presented in the Security Best Practices guide.
- Record
CVE-2021-39155- CVSS 3.1
- 8.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:L - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - CVSS 2.0
- 5.0 Medium
AV:N/AC:L/Au:N/C:P/I:N/A:N - Weakness
- CWE-178, CWE-863
- Updated
- 2026-11-02
OSV
7.5
Istio is an open source platform for providing a uniform way to integrate microservices, manage traffic flow across microservices, enforce policies and aggregate telemetry data. According to RFC 4343, Istio authorization policy should compare the hostname in the HTTP Host header in a case insensitive way, but currently the comparison is case sensitive. The proxy will route the request hostname in a case-insensitive way which means the authorization policy could be bypassed. As an example, the user may have an authorization policy that rejects request with hostname "httpbin.foo" for some source IPs, but the attacker can bypass this by sending the request with hostname "Httpbin.Foo". Patches are available in Istio 1.11.1, Istio 1.10.4 and Istio 1.9.8. As a work around a Lua filter may be written to normalize Host header before the authorization check. This is similar to the Path normalization presented in the Security Best Practices guide.
- Record
CVE-2021-39155- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVGHSA-7774-7vr3-cc8j
8.3
Authorization Policy Bypass Due to Case Insensitive Host Comparison
Impact
According to RFC 4343, Istio authorization policy should compare the hostname in the HTTP Host header in a case insensitive way, but currently the comparison is case sensitive. The Envoy proxy will route the request hostname in a case-insensitive way which means the authorization policy could be bypassed.
As an example, the user may have an authorization policy that rejects request with hostname "httpbin.foo" for some source IPs, but the attacker can bypass this by sending the request with hostname "Httpbin.Foo".
Patches
- Istio 1.11.1 and above
- Istio 1.10.4 and above
- Istio 1.9.8 and above
Workarounds
A Lua filter may be written to normalize Host header before the authorization check. This is similar to the Path normalization presented in the Security Best Practices guide.
References
More details can be found in the Istio Security Bulletin.
For more information
If you have any questions or comments about this advisory, please email us at [email protected]
- Record
GHSA-7774-7vr3-cc8j- CVSS 3.1
- 8.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:L - Weakness
- CWE-178
- Updated
- 2026-11-02
OSVRHSA-2021:3272
8.3
Red Hat Security Advisory: Red Hat OpenShift Service Mesh 2.0.7.1 security update
- Record
RHSA-2021:3272- CVSS 3.1
- 8.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L - Updated
- 2026-11-02
OSVRHSA-2021:3273
8.3
Red Hat Security Advisory: Red Hat OpenShift Service Mesh 1.1.17.1 security update
- Record
RHSA-2021:3273- CVSS 3.1
- 8.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
istio.io/istioGo |
before 1.9.8 | 1.9.8 |
istio.io/istioGo |
1.10.0 up to 1.10.4 | 1.10.4 |
istio.io/istioGo |
1.11.0 to 1.11.0 | 1.11.1 |
istio.io/istioGo |
1.11.0 up to 1.11.1 | 1.11.1 |
servicemesh-proxyRed Hat:service_mesh:2.0::el8 From an advisory covering 5 CVEs |
before 0:2.0.7-3.el8 | 0:2.0.7-3.el8 |
servicemeshRed Hat:service_mesh:2.0::el8 From an advisory covering 5 CVEs |
before 0:2.0.7-3.el8 | 0:2.0.7-3.el8 |
servicemesh-istioctlRed Hat:service_mesh:2.0::el8 From an advisory covering 5 CVEs |
before 0:2.0.7-3.el8 | 0:2.0.7-3.el8 |
servicemesh-mixcRed Hat:service_mesh:2.0::el8 From an advisory covering 5 CVEs |
before 0:2.0.7-3.el8 | 0:2.0.7-3.el8 |
servicemesh-mixsRed Hat:service_mesh:2.0::el8 From an advisory covering 5 CVEs |
before 0:2.0.7-3.el8 | 0:2.0.7-3.el8 |
servicemesh-pilot-agentRed Hat:service_mesh:2.0::el8 From an advisory covering 5 CVEs |
before 0:2.0.7-3.el8 | 0:2.0.7-3.el8 |
Show 11 moreShow less
| Package | Affected | Fixed |
|---|---|---|
servicemesh-pilot-discoveryRed Hat:service_mesh:2.0::el8 From an advisory covering 5 CVEs |
before 0:2.0.7-3.el8 | 0:2.0.7-3.el8 |
servicemesh-proxyRed Hat:service_mesh:1.1::el8 From an advisory covering 5 CVEs |
before 0:1.1.17-2.el8 | 0:1.1.17-2.el8 |
servicemeshRed Hat:service_mesh:1.1::el8 From an advisory covering 5 CVEs |
before 0:1.1.17-3.el8 | 0:1.1.17-3.el8 |
servicemesh-citadelRed Hat:service_mesh:1.1::el8 From an advisory covering 5 CVEs |
before 0:1.1.17-3.el8 | 0:1.1.17-3.el8 |
servicemesh-galleyRed Hat:service_mesh:1.1::el8 From an advisory covering 5 CVEs |
before 0:1.1.17-3.el8 | 0:1.1.17-3.el8 |
servicemesh-istioctlRed Hat:service_mesh:1.1::el8 From an advisory covering 5 CVEs |
before 0:1.1.17-3.el8 | 0:1.1.17-3.el8 |
servicemesh-mixcRed Hat:service_mesh:1.1::el8 From an advisory covering 5 CVEs |
before 0:1.1.17-3.el8 | 0:1.1.17-3.el8 |
servicemesh-mixsRed Hat:service_mesh:1.1::el8 From an advisory covering 5 CVEs |
before 0:1.1.17-3.el8 | 0:1.1.17-3.el8 |
servicemesh-pilot-agentRed Hat:service_mesh:1.1::el8 From an advisory covering 5 CVEs |
before 0:1.1.17-3.el8 | 0:1.1.17-3.el8 |
servicemesh-pilot-discoveryRed Hat:service_mesh:1.1::el8 From an advisory covering 5 CVEs |
before 0:1.1.17-3.el8 | 0:1.1.17-3.el8 |
servicemesh-sidecar-injectorRed Hat:service_mesh:1.1::el8 From an advisory covering 5 CVEs |
before 0:1.1.17-3.el8 | 0:1.1.17-3.el8 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2021-39155 is a high vulnerability (CVSS 8.3) in Istio, published August 24, 2021. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.24%, the 69th percentile. Fixed in istio.io/istio 1.9.8.
References
github.com/istio/istio/security/advisories/GHSA-7774-7vr3-cc8j
datatracker.ietf.org/doc/html/rfc4343
nvd.nist.gov/vuln/detail/CVE-2021-39155
github.com/istio/istio/commit/084b417a486dbe9b9024d4812877016a484572b1
github.com/istio/istio/commit/76ed51413ddd2a7fa253a368ab20a9cec5fb1cbe
github.com/istio/istio/commit/90b00bdf891e6c770cb3235c14a9b1fda96cc7c5
Show 27 moreShow less
github.com/advisories/GHSA-7774-7vr3-cc8j
github.com/istio/istio
access.redhat.com/errata/RHSA-2021:3272
access.redhat.com/security/updates/classification
bugzilla.redhat.com/show_bug.cgi?id=1996915
bugzilla.redhat.com/show_bug.cgi?id=1996929
bugzilla.redhat.com/show_bug.cgi?id=1996933
bugzilla.redhat.com/show_bug.cgi?id=1996934
bugzilla.redhat.com/show_bug.cgi?id=1996935
security.access.redhat.com/data/csaf/v2/advisories/2021/rhsa-2021_3272.json
access.redhat.com/security/cve/CVE-2021-32777
cve.org/CVERecord?id=CVE-2021-32777
nvd.nist.gov/vuln/detail/CVE-2021-32777
istio.io/latest/news/security/istio-security-2021-008
access.redhat.com/security/cve/CVE-2021-32779
cve.org/CVERecord?id=CVE-2021-32779
nvd.nist.gov/vuln/detail/CVE-2021-32779
access.redhat.com/security/cve/CVE-2021-32781
cve.org/CVERecord?id=CVE-2021-32781
nvd.nist.gov/vuln/detail/CVE-2021-32781
access.redhat.com/security/cve/CVE-2021-39155
cve.org/CVERecord?id=CVE-2021-39155
access.redhat.com/security/cve/CVE-2021-39156
cve.org/CVERecord?id=CVE-2021-39156
nvd.nist.gov/vuln/detail/CVE-2021-39156
access.redhat.com/errata/RHSA-2021:3273
security.access.redhat.com/data/csaf/v2/advisories/2021/rhsa-2021_3273.json