CWE-794: Incomplete Filtering of Multiple Instances of Special Elements
Weakness ID: 794
Abstraction: Variant Structure: Simple
Status: Incomplete
Presentation Filter:
Description
The software receives data from an upstream component, but does not filter all instances of a special element before sending it to a downstream component.
Extended Description
Incomplete filtering of this nature may be applied to:
sequential elements (special elements that appear next to each other) or
non-sequential elements (special elements that appear multiple times in different locations).
Relationships
The table(s) below shows the weaknesses and high level categories that are related to this weakness. These relationships are defined as ChildOf, ParentOf, MemberOf and give insight to similar items that may exist at higher and lower levels of abstraction. In addition, relationships such as PeerOf and CanAlsoBe are defined to show similar weaknesses that the user may want to explore.
Relevant to the view "Research Concepts" (CWE-1000)
Nature
Type
ID
Name
ChildOf
Variant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.
Relevant to the view "Development Concepts" (CWE-699)
Nature
Type
ID
Name
ChildOf
Variant - a weakness that is described at a very low level of detail, typically limited to a specific language or technology. More specific than a Base weakness.
The different Modes of Introduction provide information about how and when this weakness may be introduced. The Phase identifies a point in the software life cycle at which introduction may occur, while the Note provides a typical scenario related to introduction during the given phase.
Phase
Note
Implementation
REALIZATION: This weakness is caused during implementation of an architectural security tactic.
Common Consequences
The table below specifies different individual consequences associated with the weakness. The Scope identifies the application security area that is violated, while the Impact describes the negative technical impact that arises if an adversary succeeds in exploiting this weakness. The Likelihood provides information about how likely the specific consequence is expected to be seen relative to the other consequences in the list. For example, there may be high likelihood that a weakness will be exploited to achieve a certain impact, but a low likelihood that it will be exploited to achieve a different impact.
Scope
Impact
Likelihood
Integrity
Technical Impact: Unexpected State
Demonstrative Examples
Example 1
The following code takes untrusted input and uses a regular expression to filter "../" from the input. It then appends this result to the /home/user/ directory and attempts to read the file in the final resulting path.
(bad code)
Example Language: Perl
my $Username = GetUntrustedInput(); $Username =~ s/\.\.\///; my $filename = "/home/user/" . $Username; ReadAndSendFile($filename);
Since the regular expression does not have the /g global match modifier, it only removes the first instance of "../" it comes across. So an input value such as:
(attack code)
../../../etc/passwd
will have the first "../" stripped, resulting in:
(result)
../../etc/passwd
This value is then concatenated with the /home/user/ directory:
(result)
/home/user/../../etc/passwd
which causes the /etc/passwd file to be retrieved once the operating system has resolved the ../ sequences in the pathname. This leads to relative path traversal (CWE-23).
Content History
Submissions
Submission Date
Submitter
Organization
2009-12-04
CWE Content Team
MITRE
Modifications
Modification Date
Modifier
Organization
2010-02-16
CWE Content Team
MITRE
updated Demonstrative_Examples
2010-06-21
CWE Content Team
MITRE
updated Description
2011-06-01
CWE Content Team
MITRE
updated Common_Consequences
2011-06-27
CWE Content Team
MITRE
updated Common_Consequences
2017-01-19
CWE Content Team
MITRE
updated Relationships
2017-11-08
CWE Content Team
MITRE
updated Modes_of_Introduction, Relationships
More information is available — Please select a different filter.
Page Last Updated:
December 27, 2018
Use of the Common Weakness Enumeration and the associated references from this website are subject to the
Terms of Use. For more information, please email cwe@mitre.org.