Security advisory
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.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2021-43557
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 1 Nov 2026, 04:54 UTC · Revision 1
Source evidence
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.
osv:CVE-2021-43557
Complete source record
{
"id": "2c7b44a7b0542feb3be748b0f45728c888e64db8b063e757904776c1cd703b5a",
"url": "https://osv.dev/vulnerability/CVE-2021-43557",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "CVE-2021-43557",
"summary": "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.",
"evidence": "osv:CVE-2021-43557",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2021-43557",
"aliases": [
"BIT-apisix-2021-43557",
"CVE-2021-43557"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/apache/apisix",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "19587ed9f71dd20c5e8dbdc2f79c8f96296e73e3"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:apache:apisix:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "2.10.2"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"2.10.1",
"2.10.0",
"v0.9",
"0.9-RC1",
"v0.7",
"v0.5",
"v0.4.1",
"v0.4",
"v0.3-1",
"v0.3",
"v0.2"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2021-43557.json"
}
}
],
"modified": "2026-10-24T10:30:23.075735829Z",
"provider": "osv",
"references": [
"https://lists.apache.org/thread/18jyd458ptocr31rnkjs71w4h366mv7h"
],
"provider_metadata": {}
},
"related_cves": [
{
"value": "CVE-2021-43557",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 430823,
"published_at": "2021-11-22T09:15:07.627+00:00"
}