CVE-2021-43557

Path traversal in request_uri variable

Published Nov 22, 2021 CVSS 3.1 · 7.5 High EPSS 13.0% KEV · Not listed
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.

Remediation

Vendor Workaround

1. Upgrade to APISIX 2.10.2, or apply this commit which provides a normalized $request_uri: https://github.com/apache/apisix/commit/9fc38330e82ce46e2aaabceef7d61708c91782db 2. Carefully review custom code, find & fix the usage of $request_uri without verification.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History

No history.

Weaknesses

Sources

Status
PUBLISHED
Assigner
apache
Published
Updated
Aug 4, 2024, 4:03 AM
Reserved
Nov 9, 2021, 12:00 AM
Status
Modified
Published
Nov 22, 2021, 9:15 AM
Modified
Jun 17, 2026, 4:11 AM