CWE-647: Use of Non-Canonical URL Paths for Authorization Decisions

Variant Incomplete Simple

CWE版本: 4.18

更新日期: 2025-09-09

弱点描述

The product defines policy namespaces and makes authorization decisions based on the assumption that a URL is canonical. This can allow a non-canonical URL to bypass the authorization.

常见后果

影响范围: Access Control

技术影响: Bypass Protection Mechanism

说明: 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).

潜在缓解措施

阶段: Architecture and Design

描述: Make access control policy based on path information in canonical form. Use very restrictive regular expressions to validate that the path is in the expected form.

阶段: Architecture and Design

描述: Reject all alternate path encodings that are not in the expected canonical form.

检测方法

方法: 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.)

有效性: High

引入模式

阶段 说明
Implementation REALIZATION: This weakness is caused during implementation of an architectural security tactic.
Operation -

适用平台

编程语言
Not Language-Specific (Undetermined)
技术
Web Server (Undetermined)

分类映射

分类名称 条目ID 条目名称 映射适配度
The CERT Oracle Secure Coding Standard for Java (2011) IDS02-J Canonicalize path names before validating them -
关键信息

CWE ID: CWE-647

抽象级别: Variant

结构: Simple

状态: Incomplete

利用可能性: High

相关弱点