CVE-2021-43557

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.

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.

Reference Links(if available):

  • https://lists.apache.org/thread/18jyd458ptocr31rnkjs71w4h366mv7h
  • http://www.openwall.com/lists/oss-security/2021/11/22/2
  • http://www.openwall.com/lists/oss-security/2021/11/22/1
  • http://www.openwall.com/lists/oss-security/2021/11/23/1
  • CVSS Score (if available)

    v2: / MEDIUM

    v3: /

    Links to Exploits(if available)