Description
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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Apache Software Foundation | Apache APISIX | 1.5 – < Apache APISIX 1.5* | Apache APISIX 1.5* |
Public exploits
Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.
GitHub 1 repository
-
xvnpw/k8s-CVE-2021-43557-poc ★ 22 · Nov 22, 2021
PoC for CVE-2021-43557
Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.
References
- https://lists.apache.org/thread/18jyd458ptocr31rnkjs71w4h366mv7h
- [oss-security] 20211122 CVE-2021-43557: Apache APISIX: Path traversal in request_uri variable mailing-list
- [oss-security] 20211122 Re: CVE-2021-43557: Apache APISIX: Path traversal in request_uri variable mailing-list
- [oss-security] 20211123 Re: CVE-2021-43557: Apache APISIX: Path traversal in request_uri variable mailing-list