This vulnerability occurs when an application fails to properly sanitize input that contains special characters used as delimiters in expressions or commands. When this unsanitized input is passed to another component for processing, those characters can be misinterpreted, altering the intended logic or structure.
Think of delimiters like semicolons in code or pipe characters in commands—they tell a system where one instruction ends and another begins. If an attacker can inject or manipulate these delimiters in user-controlled input (like a form field or API parameter), they can break out of the intended data context and inject arbitrary expressions or commands. This is similar to SQL injection, but targets other interpreters like shell commands, configuration parsers, or templating engines. The core risk is that the downstream component, expecting clean data, instead receives input it interprets as executable logic. This can lead to data corruption, unauthorized information disclosure, or even full system compromise. To prevent this, always validate and sanitize input by escaping or stripping delimiter characters based on the specific syntax of the receiving component before any processing occurs.
Impact: Execute Unauthorized Code or CommandsAlter Execution Logic
Strategy: Input Validation
Strategy: Output Encoding
Strategy: Input Validation