CWE-76: Improper Neutralization of Equivalent Special Elements
Description
The product correctly neutralizes certain special elements, but it improperly neutralizes equivalent special elements.
The product may have a fixed list of special characters it believes is complete. However, there may be alternate encodings, or representations that also have the same meaning. For example, the product may filter out a leading slash (/) to prevent absolute path names, but does not account for a tilde (~) followed by a user name, which on some *nix systems could be expanded to an absolute pathname. Alternately, the product might filter a dangerous -e command-line switch when calling an external program, but it might not account for --exec or other switches that have the same semantics.
- Abstraction
- BaseA weakness specific enough to point to detection and prevention methods.
- Likelihood of exploit
- High
- Status
- Draft
Common consequences
- Other
Other
Potential mitigations
- Requirements
Programming languages and supporting technologies might be chosen which are not subject to these issues.
- Implementation
Utilize an appropriate mix of allowlist and denylist parsing to filter equivalent special element syntax from all input.
Related weaknesses
CAPEC attack patterns that exploit it
CWE 4.20 links no CAPEC attack pattern to this weakness.