envoyproxy Envoy processes the request path inconsistently between routing and RBAC when ignore_path_parameters_in_path_matching is enabled. The router matches a path with the semicolon suffix removed, while the RBAC url_path matcher evaluates the raw path. Consequently, a request such as GET /admin;x can fail to match a DENY policy for /admin while still matching the protected route after the suffix is removed.
The defect is a canonicalization conflict between envoy.filters.http.router and envoy.filters.http.rbac, consistent with CWE-436. Exploitation requires all of the following: the route option must be enabled, an RBAC policy must use a path-based url_path rule, and the protected route must match after path-parameter removal. The vendor advisory identifies the router-side processing as sanitizedPath() and stripPathParams, while RBAC retains the semicolon portion when evaluating the raw path. The vendor does not identify normalizePath or mergeSlashes as effective ways to reconcile the two path views.