This vulnerability occurs when an application accepts user input containing macro symbols (like those used in templates or configuration files) and passes it along without properly sanitizing it. This allows attackers to inject malicious macro commands that get executed by downstream systems, potentially leading to data manipulation, system access, or other unintended behaviors.
Think of this like handing someone a note written in a special code language they understand, but you didn't check what the note actually says. If an attacker can sneak their own commands into that 'code' (the macro symbols), the downstream component will faithfully execute those commands as if they were legitimate instructions. This is common in systems that process templates, configuration files, or documents that support embedded scripting or command macros. To prevent this, developers must treat all user-supplied input that will be interpreted as code or commands as untrusted. Implement strict validation and sanitization routines that either escape or remove dangerous macro symbols before the data is sent for processing. Always design systems with a clear separation between data (which can be user-provided) and the actual commands or code that operate on that data.
Impact: Unexpected State
Strategy: Input Validation
Strategy: Input Validation
Strategy: Output Encoding
Strategy: Input Validation