Every CVE Search/ Get API key

CVE-2021-32779

Incorrectly handling of URI '#fragment' element as part of the path element

8.6 HighFix available

Envoy is an open source L7 proxy and communication bus designed for large modern service oriented architectures. In affected versions envoy incorrectly handled a URI '#fragment' element as part of the path element. Envoy is configured with an RBAC filter for authorization or similar mechanism with an explicit case of a final "/admin" path element, or is using a negative assertion with final path element of "/admin". The client sends request to "/app1/admin#foo". In Envoy prior to 1.18.0, or 1.18.0+ configured with path_normalization=false. Envoy treats fragment as a suffix of the query string when present, or as a suffix of the path when query string is absent, so it evaluates the final path element as "/admin#foo" and mismatches with the configured "/admin" path element. In Envoy 1.18.0+ configured with path_normalization=true. Envoy transforms this to /app1/admin%23foo and mismatches with the configured /admin prefix. The resulting URI is sent to the next server-agent with the offending "#foo" fragment which violates RFC3986 or with the nonsensical "%23foo" text appended. A specifically constructed request with URI containing '#fragment' element delivered by an untrusted client in the presence of path based request authorization resulting in escalation of Privileges when path based request authorization extensions. Envoy versions 1.19.1, 1.18.4, 1.17.4, 1.16.5 contain fixes that removes fragment from URI path in incoming requests.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
None
Availability
None

Exploit likelihood

0.96%Up 0.3 points since Aug 25, 2021
90%50%10%1%

What each source reports

CVE List Score used 8.6

Incorrectly handling of URI '#fragment' element as part of the path element

Envoy is an open source L7 proxy and communication bus designed for large modern service oriented architectures. In affected versions envoy incorrectly handled a URI '#fragment' element as part of the path element. Envoy is configured with an RBAC filter for authorization or similar mechanism with an explicit case of a final "/admin" path element, or is using a negative assertion with final path element of "/admin". The client sends request to "/app1/admin#foo". In Envoy prior to 1.18.0, or 1.18.0+ configured with path_normalization=false. Envoy treats fragment as a suffix of the query string when present, or as a suffix of the path when query string is absent, so it evaluates the final path element as "/admin#foo" and mismatches with the configured "/admin" path element. In Envoy 1.18.0+ configured with path_normalization=true. Envoy transforms this to /app1/admin%23foo and mismatches with the configured /admin prefix. The resulting URI is sent to the next server-agent with the offending "#foo" fragment which violates RFC3986 or with the nonsensical "%23foo" text appended. A specifically constructed request with URI containing '#fragment' element delivered by an untrusted client in the presence of path based request authorization resulting in escalation of Privileges when path based request authorization extensions. Envoy versions 1.19.1, 1.18.4, 1.17.4, 1.16.5 contain fixes that removes fragment from URI path in incoming requests.

Record
CVE-2021-32779
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
Weakness
CWE-551, CWE-863
Updated
2026-11-02
EUVDEUVD-2021-19543 8.6

Envoy is an open source L7 proxy and communication bus designed for large modern service oriented architectures. In affected versions envoy incorrectly handled a URI '#fragment' element as part of the path element. Envoy is configured with an RBAC filter for authorization or similar mechanism with an explicit case of a final "/admin" path element, or is using a negative assertion with final path element of "/admin". The client sends request to "/app1/admin#foo". In Envoy prior to 1.18.0, or 1.18.0+ configured with path_normalization=false. Envoy treats fragment as a suffix of the query string when present, or as a suffix of the path when query string is absent, so it evaluates the final path element as "/admin#foo" and mismatches with the configured "/admin" path element. In Envoy 1.18.0+ configured with path_normalization=true. Envoy transforms this to /app1/admin%23foo and mismatches with the configured /admin prefix. The resulting URI is sent to the next server-agent with the offending "#foo" fragment which violates RFC3986 or with the nonsensical "%23foo" text appended. A specifically constructed request with URI containing '#fragment' element delivered by an untrusted client in the presence of path based request authorization resulting in escalation of Privileges when path based request authorization extensions. Envoy versions 1.19.1, 1.18.4, 1.17.4, 1.16.5 contain fixes that removes fragment from URI path in incoming requests.

Record
EUVD-2021-19543
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
Updated
2026-11-03
NVD 8.6

Envoy is an open source L7 proxy and communication bus designed for large modern service oriented architectures. In affected versions envoy incorrectly handled a URI '#fragment' element as part of the path element. Envoy is configured with an RBAC filter for authorization or similar mechanism with an explicit case of a final "/admin" path element, or is using a negative assertion with final path element of "/admin". The client sends request to "/app1/admin#foo". In Envoy prior to 1.18.0, or 1.18.0+ configured with path_normalization=false. Envoy treats fragment as a suffix of the query string when present, or as a suffix of the path when query string is absent, so it evaluates the final path element as "/admin#foo" and mismatches with the configured "/admin" path element. In Envoy 1.18.0+ configured with path_normalization=true. Envoy transforms this to /app1/admin%23foo and mismatches with the configured /admin prefix. The resulting URI is sent to the next server-agent with the offending "#foo" fragment which violates RFC3986 or with the nonsensical "%23foo" text appended. A specifically constructed request with URI containing '#fragment' element delivered by an untrusted client in the presence of path based request authorization resulting in escalation of Privileges when path based request authorization extensions. Envoy versions 1.19.1, 1.18.4, 1.17.4, 1.16.5 contain fixes that removes fragment from URI path in incoming requests.

Record
CVE-2021-32779
CVSS 3.1
8.6 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
CVSS 3.1
8.3 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L
CVSS 2.0
7.5 HighAV:N/AC:L/Au:N/C:P/I:P/A:P
Weakness
CWE-551, CWE-863, CWE-697
Updated
2026-11-02
OSV 8.3

Envoy is an open source L7 proxy and communication bus designed for large modern service oriented architectures. In affected versions envoy incorrectly handled a URI '#fragment' element as part of the path element. Envoy is configured with an RBAC filter for authorization or similar mechanism with an explicit case of a final "/admin" path element, or is using a negative assertion with final path element of "/admin". The client sends request to "/app1/admin#foo". In Envoy prior to 1.18.0, or 1.18.0+ configured with path_normalization=false. Envoy treats fragment as a suffix of the query string when present, or as a suffix of the path when query string is absent, so it evaluates the final path element as "/admin#foo" and mismatches with the configured "/admin" path element. In Envoy 1.18.0+ configured with path_normalization=true. Envoy transforms this to /app1/admin%23foo and mismatches with the configured /admin prefix. The resulting URI is sent to the next server-agent with the offending "#foo" fragment which violates RFC3986 or with the nonsensical "%23foo" text appended. A specifically constructed request with URI containing '#fragment' element delivered by an untrusted client in the presence of path based request authorization resulting in escalation of Privileges when path based request authorization extensions. Envoy versions 1.19.1, 1.18.4, 1.17.4, 1.16.5 contain fixes that removes fragment from URI path in incoming requests.

Record
CVE-2021-32779
CVSS 3.1
8.3 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L
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 HighCVSS: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 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:L
Updated
2026-11-02
OSVBIT-envoy-2021-32779 No score

Incorrectly handling of URI '#fragment' element as part of the path element

Envoy is an open source L7 proxy and communication bus designed for large modern service oriented architectures. In affected versions envoy incorrectly handled a URI '#fragment' element as part of the path element. Envoy is configured with an RBAC filter for authorization or similar mechanism with an explicit case of a final "/admin" path element, or is using a negative assertion with final path element of "/admin". The client sends request to "/app1/admin#foo". In Envoy prior to 1.18.0, or 1.18.0+ configured with path_normalization=false. Envoy treats fragment as a suffix of the query string when present, or as a suffix of the path when query string is absent, so it evaluates the final path element as "/admin#foo" and mismatches with the configured "/admin" path element. In Envoy 1.18.0+ configured with path_normalization=true. Envoy transforms this to /app1/admin%23foo and mismatches with the configured /admin prefix. The resulting URI is sent to the next server-agent with the offending "#foo" fragment which violates RFC3986 or with the nonsensical "%23foo" text appended. A specifically constructed request with URI containing '#fragment' element delivered by an untrusted client in the presence of path based request authorization resulting in escalation of Privileges when path based request authorization extensions. Envoy versions 1.19.1, 1.18.4, 1.17.4, 1.16.5 contain fixes that removes fragment from URI path in incoming requests.

Record
BIT-envoy-2021-32779
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
envoy
Bitnami
1.16.0 up to 1.16.5, 1.17.0 up to 1.17.4, 1.18.0 up to 1.18.4, 1.19.0 up to 1.19.1
1.16.51.17.41.18.41.19.1
servicemesh-proxy
Red 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
Red 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-istioctl
Red 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-mixc
Red 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-mixs
Red 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-agent
Red 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-discovery
Red 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-proxy
Red 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
servicemesh
Red 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
Show 8 moreShow less
Affected packages
PackageAffectedFixed
servicemesh-citadel
Red 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-galley
Red 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-istioctl
Red 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-mixc
Red 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-mixs
Red 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-agent
Red 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-discovery
Red 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-injector
Red 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

History
RecordedChangedSources
affected, facts
aliasesEUVD
first indexedCVE List, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2021-32779 is a high vulnerability (CVSS 8.6) in Envoyproxy Envoy, published August 24, 2021. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.96%, the 61st percentile. Fixed in envoy 1.16.5.

References

Show 22 moreShow less
MoveEnter Open