COMMON WEAKNESS ENUMERATIONDraft

CWE-76

Improper Neutralization of Equivalent Special Elements

The product correctly neutralizes certain special elements, but it improperly neutralizes equivalent special elements.

Abstraction

Base

Structure

Simple

Likelihood of Exploit

High

Understand the problem

What is the problem?

The product correctly neutralizes certain special elements, but it improperly neutralizes equivalent special elements.

Extended description

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.

Root cause

How and when does the problem arise?

Lifecycle phase

Implementation

REALIZATION: This weakness is caused during implementation of an architectural security tactic.

Risk

What does successful exploitation lead to?

Other

Affected security scopes: Other

Defence

How is it prevented and fixed?

Requirements

Security requirement

Detail
Programming languages and supporting technologies might be chosen which are not subject to these issues.

Implementation

Implementation-phase defence

Detail
Utilize an appropriate mix of allowlist and denylist parsing to filter equivalent special element syntax from all input.