envoyproxy Envoy có hai thành phần xử lý request path theo cách không nhất quán khi ignore_path_parameters_in_path_matching được bật. Router sử dụng path đã loại bỏ phần hậu tố bắt đầu từ dấu chấm phẩy, trong khi RBAC url_path matcher vẫn đánh giá raw path. Vì vậy, một request như GET /admin;x có thể không khớp policy DENY dành cho /admin, nhưng vẫn được route tới backend được bảo vệ khi route match sau khi loại bỏ hậu tố.
Lỗi nằm ở sự khác biệt canonicalization giữa envoy.filters.http.router và envoy.filters.http.rbac, thuộc nhóm CWE-436. Điều kiện khai thác cần đồng thời có route option ignore_path_parameters_in_path_matching: true, policy RBAC dùng path-based url_path, và route được bảo vệ phải match sau khi phần path parameter bị loại bỏ. Vendor advisory mô tả router sử dụng sanitizedPath() và stripPathParams, còn RBAC giữ lại phần ; khi xử lý raw path. Các thiết lập chuẩn hóa path như normalizePath hoặc mergeSlashes không được vendor xác nhận là có thể khắc phục sự không nhất quán này.