CWE-150: Failure to Sanitize Escape, Meta, or Control Sequences
Failure to Sanitize Escape, Meta, or Control Sequences
Weakness ID: 150 (Weakness Variant)
Status: Incomplete
Description
Description Summary
Escape, meta, or control character/sequence injected into an
application through input can be used to compromise a
system.
Extended Description
As data is parsed, injected/absent/malformed escape, meta, or control
characters/sequences may cause the process to take unexpected actions that
result in an attack.
MFV. (multi-channel). Injection of control
characters into log files that allow information hiding when using raw Unix
programs to read the files.
Potential Mitigations
Phase
Description
Developers should anticipate that escape, meta and control
characters/sequences will be injected/removed/manipulated in the input
vectors of their software system. Use an appropriate combination of
black lists and white lists to ensure only valid, expected and
appropriate input is processed by the system.
Architecture and Design
Assume all input is malicious. Use a standard input validation
mechanism to validate all input for length, type, syntax, and business
rules before accepting the data to be displayed or stored. Use an
"accept known good" validation strategy.
Use and specify a strong output encoding (such as ISO 8859-1 or UTF
8).
Do not rely exclusively on blacklist validation to detect malicious
input or to encode output. There are too many variants to encode a
character; you're likely to miss some variants.
Inputs should be decoded and canonicalized to the application's
current internal representation before being validated. Make sure that
your application does not decode the same input twice. Such errors could
be used to bypass whitelist schemes by introducing dangerous inputs
after they have been checked.