CWEweakness
CWE-647 Use of Non-Canonical URL Paths for Authorization Decisions
High
Official page ↗
- Abstraction
- Variant
- Structure
- Simple
- Status
- Incomplete
- Likelihood of exploit
- High
- Languages
- Not Language-Specific
- CWE version
- 5.0
Description
The product defines policy namespaces and makes authorization decisions based on the assumption that a URL is canonical.
Extended description
If an application defines policy namespaces and makes authorization decisions based on the URL, but it does not require or convert to a canonical URL before making the authorization decision, then it opens the application to attack. For example, if the application only wants to allow access to http://www.example.com/mypage, then the attacker might be able to bypass this restriction using equivalent URLs such as:
• http://WWW.EXAMPLE.COM/mypage
• http://www.example.com/%6Dypage (alternate encoding)
• http://192.168.1.1/mypage (IP address)
• http://www.example.com/mypage/ (trailing /)
• http://www.example.com:80/mypage
Common consequences
• Access Control: Bypass Protection Mechanism — This can allow a non-canonical URL to bypass the authorization. An attacker may be able to bypass the authorization mechanism to gain access to the otherwise-protected URL.
• Confidentiality: Read Files or Directories — If a non-canonical URL is used, the server may choose to return the contents of the file, instead of pre-processing the file (e.g. as a program).
Potential mitigations
• [Architecture and Design] Make access control policy based on path information in canonical form, with all alternate encodings rejected (which can be accomplished by a default deny rule). Consider very restrictive regular expressions to validate that the path is in the expected form. Reject all alternate path encodings that are not in the expected canonical form.
Detection methods
• Automated Static Analysis: Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.)
Related
Child of · CWE (2)
Referenced by CVE · weakness (16)
- CVE-2026-76530 As part of Cisco's ongoing commitment to proactive security and product quality, Cisco has conducted a comprehensive internal security… vulnerability
- CVE-2026-94269 Use of Non-Canonical URL paths for authorization decisions vulnerability in Apache APISIX. vulnerability
- CVE-2026-71178 Dell Secure Connect Gateway (SCG) Policy Manager, versions prior to 5.34.00.16, contains an Use of Non-Canonical URL Paths for… vulnerability
- CVE-2026-73551 Envoy is an open source edge and service proxy designed for cloud-native applications. vulnerability
- CVE-2026-80515 In Eclipse Arrowhead versions from 5.0.0 to 5.2.1 the management-authorization gate that protects every /…/mgmt/… REST endpoint decides… vulnerability
- CVE-2026-15970 Consul Community Edition and Consul Enterprise 1.20.1 through 2.0.2 are vulnerable to an L7 intention authorization bypass when a service… vulnerability
- CVE-2026-62685 File Browser is a file managing interface for uploading, deleting, previewing, renaming, and editing files within a specified directory. vulnerability
- CVE-2026-8384 In Eclipse Jetty, an HTTP URI of this form: /public;/../admin/secret.txt results in an unresolved path of: /public/../admin/secret.txt… vulnerability
- CVE-2026-59731 Astro is a web framework for content-driven websites. vulnerability
- CVE-2026-5222 Cargo between 1.68 and 1.96 incorrectly normalized the URLs of third-party registries using the sparse index protocol. vulnerability
- CVE-2025-9909 A flaw was found in the Red Hat Ansible Automation Platform Gateway route creation component. vulnerability
- CVE-2025-66202 Astro is a web framework. vulnerability
- CVE-2025-64500 Symfony is a PHP framework for web and console applications and a set of reusable PHP components. vulnerability
- CVE-2025-47241 In browser-use (aka Browser Use) before 0.1.45, URL parsing of allowed_domains is mishandled because userinfo can be placed in the… vulnerability
- CVE-2025-43916 Sonos api.sonos.com through 2025-04-21, when the /login/v3/oauth endpoint is used, accepts a redirect_uri containing userinfo in the… vulnerability
- CVE-2022-43939 Hitachi Vantara Pentaho Business Analytics Server versions before 9.4.0.1 and 9.3.0.2, including 8.3.x contain security restrictions using… vulnerability