Bypassing Block List with Unverified $request_uri in Apache APISIX

Bypassing Block List with Unverified $request_uri in Apache APISIX

CVE-2021-43557 · HIGH Severity

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

The uri-block plugin in Apache APISIX before 2.10.2 uses $request_uri without verification. The $request_uri is the full original request URI without normalization. This makes it possible to construct a URI to bypass the block list on some occasions. For instance, when the block list contains "^/internal/", a URI like `//internal/` can be used to bypass it. Some other plugins also have the same issue. And it may affect the developer's custom plugin.

Learn more about our Cis Benchmark Audit For Apache Http Server.