{"id":"CVE-2021-43557","aliases":["BIT-apisix-2021-43557","EUVD-2021-30486","GHSA-9wxc-375c-cvq2"],"status":"published","title":"Path traversal in request_uri variable","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.","severity":{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-10","score":0.13044,"percentile":0.96376,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":true},"cwes":["CWE-77"],"published":"2021-11-22T08:25:09Z","modified":"2026-10-24T10:30:23Z","exploits":[{"source":"pocgithub","id":"xvnpw/k8s-CVE-2021-43557-poc","title":"xvnpw/k8s-CVE-2021-43557-poc","date":"2021-11-22","url":"https://github.com/xvnpw/k8s-CVE-2021-43557-poc"}],"fixes":[{"ecosystem":"Bitnami","package":"apisix","fixed_in":["2.10.2"],"sources":["osv"]}],"affected":[{"source":"osv","ecosystem":"Bitnami","package":"apisix","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"2.10.2"}]}]}],"products":[{"vendor":"apache","product":"apisix"},{"vendor":"apache software foundation","product":"apache apisix"}],"references":[{"url":"https://lists.apache.org/thread/18jyd458ptocr31rnkjs71w4h366mv7h","tags":["x_refsource_MISC","x_transferred","Exploit","Mailing List","Vendor Advisory","advisory","evidence"]},{"url":"http://www.openwall.com/lists/oss-security/2021/11/22/1","tags":["mailing-list","x_refsource_MLIST","x_transferred","Mailing List","Third Party Advisory","advisory"]},{"url":"http://www.openwall.com/lists/oss-security/2021/11/22/2","tags":["mailing-list","x_refsource_MLIST","x_transferred","Mailing List","Third Party Advisory","advisory"]},{"url":"http://www.openwall.com/lists/oss-security/2021/11/23/1","tags":["mailing-list","x_refsource_MLIST","x_transferred","Exploit","Mailing List","Third Party Advisory","advisory","evidence"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-43557","tags":["web"]},{"url":"https://github.com/advisories/GHSA-9wxc-375c-cvq2"}],"sources":{"cve":[{"id":"CVE-2021-43557","title":"Path traversal in request_uri variable","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.","status":"published","published":"2021-11-22T08:25:09Z","modified":"2024-08-04T04:03:07.927Z","updated_at":"2026-11-02T14:32:57.033395Z"}],"euvd":[{"id":"EUVD-2021-30486","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.","status":"published","published":"2021-11-22T08:25:09Z","modified":"2024-08-04T04:03:07Z","updated_at":"2026-11-03T03:24:13.772922Z"}],"ghsa":[{"id":"GHSA-9wxc-375c-cvq2","title":"The uri-block plugin in Apache APISIX before 2.10.2 uses $request_uri without verification. The ...","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.","status":"published","published":"2021-11-23T00:00:52Z","modified":"2023-02-01T05:06:28Z","cwes":["CWE-77"],"updated_at":"2026-11-02T14:50:21.264393Z"}],"nvd":[{"id":"CVE-2021-43557","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.","status":"published","published":"2021-11-22T09:15:07.627Z","modified":"2026-06-17T04:11:07.91Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high","assessor":"primary"},{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:P/I:N/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-77"],"updated_at":"2026-11-02T14:07:01.428028Z"}],"osv":[{"id":"CVE-2021-43557","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.","status":"published","published":"2021-11-22T09:15:07.627Z","modified":"2026-10-24T10:30:23.075735829Z","cvss":[{"version":"3.1","score":7.5,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N","level":"high"}],"updated_at":"2026-11-02T15:44:21.877444Z"},{"id":"BIT-apisix-2021-43557","title":"Path traversal in request_uri variable","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.","status":"published","published":"2024-03-06T10:51:17.884Z","modified":"2026-09-08T08:45:32.645752803Z","updated_at":"2026-11-02T15:28:28.267217Z"}]}}
