Summary
Envoy's URI template matcher does not match URI paths containing the * character.
Affected Components
Envoy's URI template matcher and Envoy's HTTP RBAC extension when configured with the uri_template permissions.
Details
Envoy's URI template matcher incorrectly excludes the * character from a set of valid characters in the URI path. As a result URI path containing the * character will not match a URI template expressions.
Impact
Bypass of RBAC rules when configured using the uri_template permissions.
Attack vector(s)
A request from an untrusted peer with URI path containing the * character.
Patches
This vulnerability is fixed in Envoy versions v1.34.1, v1.33.3, v1.32.6, v1.31.8
Workarounds
Configure additional RBAC permissions using url_path with safe_regex expression.
Detection
Access log entries to excluded endpoints with the * character(s) in request URI path.
Credits
Discovery: "Chwila, Bartosz" [email protected]
Diagnostics: Jackie Maertens (Elliott): https://github.com/jaellio
Summary
Envoy's URI template matcher does not match URI paths containing the
*character.Affected Components
Envoy's URI template matcher and Envoy's HTTP RBAC extension when configured with the
uri_templatepermissions.Details
Envoy's URI template matcher incorrectly excludes the
*character from a set of valid characters in the URI path. As a result URI path containing the*character will not match a URI template expressions.Impact
Bypass of RBAC rules when configured using the
uri_templatepermissions.Attack vector(s)
A request from an untrusted peer with URI path containing the
*character.Patches
This vulnerability is fixed in Envoy versions v1.34.1, v1.33.3, v1.32.6, v1.31.8
Workarounds
Configure additional RBAC permissions using
url_pathwithsafe_regexexpression.Detection
Access log entries to excluded endpoints with the
*character(s) in request URI path.Credits
Discovery: "Chwila, Bartosz" [email protected]
Diagnostics: Jackie Maertens (Elliott): https://github.com/jaellio