Skip to main content

CWE-146: Improper Neutralization of Expression/Command Delimiters

VariantIncomplete

The product receives input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could be interpreted as expression or command delimiters when they are sent to a downstream component.

View on MITRE
Back to CWE Lookup

Extended Description

As data is parsed, an injected/absent/malformed delimiter may cause the process to take unexpected actions.

Technical Details

Structure
Simple

Applicable To

Languages
Not Language-Specific
Platforms

Frequently Asked Questions

What is CWE-146: Improper Neutralization of Expression/Command Delimiters?+

CWE-146: Improper Neutralization of Expression/Command Delimiters 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 expression or command delimiters 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 Expression/Command Delimiters?+

If exploited, CWE-146 (Improper Neutralization of Expression/Command Delimiters) it can compromise Confidentiality, Integrity, Availability and Other, leading to outcomes such as Execute Unauthorized Code or Commands and Alter Execution Logic.

How do you prevent or mitigate Improper Neutralization of Expression/Command Delimiters?+

Recommended mitigations for CWE-146 include: Developers should anticipate that inter-expression and inter-command delimiters 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 Expression/Command Delimiters?+

CWE-146 commonly affects Not Language-Specific. Note that weaknesses are often language-agnostic patterns, so secure coding practices apply broadly.

What is the difference between a CWE and a CVE?+

A CWE (Common Weakness Enumeration) like CWE-146 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.

Learn More