CAPEC Definitions / CAPEC-71
CAPEC-71: Using Unicode Encoding to Bypass Validation Logic
An attacker may provide a Unicode string to a system component that is not Unicode aware and use that to circumvent the filter or cause the classifying mechanism to fail to properly understanding the request. That may allow the attacker to slip malicious data past the content filter and/or possibly cause the application to route the request incorrectly.
Extended Description
No Extended Description.
Mitigations
Ensure that the system is Unicode aware and can properly process Unicode data. Do not make an assumption that data will be in ASCII.
Ensure that filtering or input validation is applied to canonical data.
Assume all input is malicious. Create an allowlist that defines all valid input to the software system based on the requirements specifications. Input that does not match against the allowlist should not be permitted to enter into the system.
Relationships with other CAPECs
CAPEC-267: Leverage Alternate Encoding
Prerequisites
Filtering is performed on data that has not be properly canonicalized.
Related Weaknesses
CWE-176: Improper Handling of Unicode Encoding
CWE-179: Incorrect Behavior Order: Early Validation
CWE-180: Incorrect Behavior Order: Validate Before Canonicalize
CWE-173: Improper Handling of Alternate Encoding
CWE-172: Encoding Error
CWE-184: Incomplete List of Disallowed Inputs
CWE-183: Permissive List of Allowed Inputs
CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')
CWE-20: Improper Input Validation
CWE-697: Incorrect Comparison
CWE-692: Incomplete Denylist to Cross-Site Scripting
