CWE-180: Incorrect Behavior Order: Validate Before Canonicalize

Variant Draft Simple

CWE版本: 4.18

更新日期: 2025-09-09

弱点描述

The product validates input before it is canonicalized, which prevents the product from detecting data that becomes invalid after the canonicalization step.

扩展描述

This can be used by an attacker to bypass the validation and launch attacks that expose weaknesses that would otherwise be prevented, such as injection.

常见后果

影响范围: Access Control

技术影响: Bypass Protection Mechanism

潜在缓解措施

阶段: Implementation

策略: Input Validation

描述: Inputs should be decoded and canonicalized to the application's current internal representation before being validated (CWE-180). Make sure that the application does not decode the same input twice (CWE-174). Such errors could be used to bypass allowlist validation schemes by introducing dangerous inputs after they have been checked.

观察示例

参考: CVE-2002-0433

Product allows remote attackers to view restricted files via an HTTP request containing a "*" (wildcard or asterisk) character.

参考: CVE-2003-0332

Product modifies the first two letters of a filename extension after performing a security check, which allows remote attackers to bypass authentication via a filename with a .ats extension instead of a .hts extension.

参考: CVE-2002-0802

Database consumes an extra character when processing a character that cannot be converted, which could remove an escape character from the query and make the application subject to SQL injection attacks.

参考: CVE-2000-0191

Overlaps "fakechild/../realchild"

参考: CVE-2004-2363

Product checks URI for "<" and other literal characters, but does it before hex decoding the URI, so "%3E" and other sequences are allowed.

引入模式

阶段 说明
Implementation -

适用平台

编程语言
Not Language-Specific (Undetermined)

分类映射

分类名称 条目ID 条目名称 映射适配度
PLOVER - Validate-Before-Canonicalize -
OWASP Top Ten 2004 A1 Unvalidated Input CWE More Specific
The CERT Oracle Secure Coding Standard for Java (2011) IDS01-J Normalize strings before validating them Exact
SEI CERT Oracle Coding Standard for Java IDS01-J Normalize strings before validating them Exact
关键信息

CWE ID: CWE-180

抽象级别: Variant

结构: Simple

状态: Draft

相关弱点
相关攻击模式
CAPEC-267 CAPEC-3 CAPEC-71 CAPEC-78 CAPEC-79 CAPEC-80