CWE-150: Improper Neutralization of Escape, Meta, or Control Sequences
The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as escape, meta, or control character sequences when they are sent to a downstream component.
View on MITREExtended Description
As data is parsed, an injected/absent/malformed delimiter may cause the process to take unexpected actions.
Technical Details
- Structure
- Simple
Applicable To
Security Consequences
Scope
Impact
Mitigation Strategies
Phase
Description
Developers should anticipate that escape, meta and control characters/sequences will be injected/removed/manipulated in the input vectors of their product. Use an appropriate combination of denylists and allowlists to ensure only valid, expected and appropriate input is processed by the system.
Detection Methods
No detection method information available for this CWE.
Code Examples & CVEs
Observed CVE Examples (11)
The mail program processes special "~" escape sequence even when not in interactive mode.
View DetailsSetuid program does not filter escape sequences before calling mail program.
View DetailsMail function does not filter control characters from arguments, allowing mail message content to be modified.
View DetailsMulti-channel issue. Terminal escape sequences not filtered from log files.
View DetailsMulti-channel issue. Terminal escape sequences not filtered from log files.
View DetailsMFV. (multi-channel). Injection of control characters into log files that allow information hiding when using raw Unix programs to read the files.
View DetailsCWE Relationships
Frequently Asked Questions
What is CWE-150: Improper Neutralization of Escape, Meta, or Control Sequences?+
CWE-150: Improper Neutralization of Escape, Meta, or Control Sequences is a Common Weakness Enumeration (CWE) entry maintained by MITRE. The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as escape, meta, or control character sequences when they are sent to a downstream component. As data is parsed, an injected/absent/malformed delimiter may cause the process to take unexpected actions.
What are the security consequences of Improper Neutralization of Escape, Meta, or Control Sequences?+
If exploited, CWE-150 (Improper Neutralization of Escape, Meta, or Control Sequences) it can compromise Integrity, leading to outcomes such as Unexpected State.
How do you prevent or mitigate Improper Neutralization of Escape, Meta, or Control Sequences?+
Recommended mitigations for CWE-150 include: Developers should anticipate that escape, meta and control characters/sequences will be injected/removed/manipulated in the input vectors of their product. Use an appropriate combination of denylists and allowlists to ensure only valid, expected and appropriate input is processed by the system.
Which programming languages are affected by Improper Neutralization of Escape, Meta, or Control Sequences?+
CWE-150 commonly affects Not Language-Specific. Note that weaknesses are often language-agnostic patterns, so secure coding practices apply broadly.
What are real-world examples of Improper Neutralization of Escape, Meta, or Control Sequences?+
MITRE documents real CVEs mapped to CWE-150, including CVE-2002-0542, CVE-2000-0703, CVE-2002-0986, CVE-2003-0020 and CVE-2003-0083. You can look up the full details of each CVE, including CVSS scores and remediation guidance, on our CVE Lookup tool.
What is the difference between a CWE and a CVE?+
A CWE (Common Weakness Enumeration) like CWE-150 describes a category of software weakness — the underlying flaw type. A CVE (Common Vulnerabilities and Exposures) identifies a specific, real-world vulnerability in a particular product. In short, a CWE is the kind of mistake, and a CVE is an instance of that mistake being found in software.