Description
The product receives data from an upstream component, but only accounts for special elements at a specified location, thereby missing remaining special elements that may exist before sending it to a downstream component.
A filter might only account for instances of special elements when they occur: This may leave special elements in the data that did not match the filter position, but still may be dangerous.
Potential Impact
Integrity
Unexpected State
Demonstrative Examples
my $Username = GetUntrustedInput();$Username =~ s/^\.\.\///;my $filename = "/home/user/" . $Username;ReadAndSendFile($filename);../../../etc/passwd../../etc/passwd/home/user/../../etc/passwdmy $Username = GetUntrustedInput();if (substr($Username, 0, 3) eq '../') {$Username = substr($Username, 3);}my $filename = "/home/user/" . $Username;ReadAndSendFile($filename);../../../etc/passwd../../etc/passwd/home/user/../../etc/passwdRelated Weaknesses
Frequently Asked Questions
What is CWE-795?
CWE-795 (Only Filtering Special Elements at a Specified Location) is a software weakness identified by MITRE's Common Weakness Enumeration. It is classified as a Base-level weakness. The product receives data from an upstream component, but only accounts for special elements at a specified location, thereby missing remaining special elements that may exist before sending it to a d...
How can CWE-795 be exploited?
Attackers can exploit CWE-795 (Only Filtering Special Elements at a Specified Location) to unexpected state. This weakness is typically introduced during the Implementation phase of software development.
How do I prevent CWE-795?
Follow secure coding practices, conduct code reviews, and use automated security testing tools (SAST/DAST) to detect this weakness early in the development lifecycle.
What is the severity of CWE-795?
CWE-795 is classified as a Base-level weakness (Medium abstraction). Its actual severity depends on the specific context and how the weakness manifests in your application.