The product is vulnerable to file system contents disclosure through path equivalence. Path equivalence involves the use of special characters in file and directory names. The associated manipulations are intended to generate multiple names for the same object.
Path equivalence is usually employed in order to circumvent access controls expressed using an incomplete set of file name or file path representations. This is different from path traversal, wherein the manipulations are performed to generate a name for a different object.

Primary

Implementation

Confidentiality
Integrity
Access Control
Read Files or Directories
Modify Files or Directories
Bypass Protection Mechanism
An attacker may be able to traverse the file system to unintended locations and read or overwrite the contents of unexpected files. If the files are used for a security mechanism than an attacker may be able to bypass the mechanism.

Automated Static Analysis - Binary or Bytecode

According to SOAR [REF-1479], the following detection techniques may be useful:

Cost effective for partial coverage:

Bytecode Weakness Analysis - including disassembler + source code weakness analysis

SOAR Partial

Manual Static Analysis - Binary or Bytecode

According to SOAR [REF-1479], the following detection techniques may be useful:

Cost effective for partial coverage:

Binary / Bytecode disassembler - then use manual analysis for vulnerabilities & anomalies

SOAR Partial

Dynamic Analysis with Automated Results Interpretation

According to SOAR [REF-1479], the following detection techniques may be useful:

Cost effective for partial coverage:

Web Application Scanner
Web Services Scanner
Database Scanners

SOAR Partial

Dynamic Analysis with Manual Results Interpretation

According to SOAR [REF-1479], the following detection techniques may be useful:

Cost effective for partial coverage:

Fuzz Tester
Framework-based Fuzzer

SOAR Partial

Manual Static Analysis - Source Code

According to SOAR [REF-1479], the following detection techniques may be useful:

Highly cost effective:

Focused Manual Spotcheck - Focused manual analysis of source
Manual Source Code Review (not inspections)

High

Automated Static Analysis - Source Code

According to SOAR [REF-1479], the following detection techniques may be useful:

Cost effective for partial coverage:

Source code Weakness Analyzer
Context-configured Source Code Weakness Analyzer

SOAR Partial

Architecture or Design Review

According to SOAR [REF-1479], the following detection techniques may be useful:

Highly cost effective:

Formal Methods / Correct-By-Construction

Cost effective for partial coverage:

Inspection (IEEE 1028 standard) (can apply to requirements, design, source code, etc.)

High

Implementation
Input Validation

Assume all input is malicious. Use an "accept known good" input validation strategy, i.e., use a list of acceptable inputs that strictly conform to specifications. Reject any input that does not strictly conform to specifications, or transform it into something that does.
When performing input validation, consider all potentially relevant properties, including length, type of input, the full range of acceptable values, missing or extra inputs, syntax, consistency across related fields, and conformance to business rules. As an example of business rule logic, "boat" may be syntactically valid because it only contains alphanumeric characters, but it is not valid if the input is only expected to contain colors such as "red" or "blue."
Do not rely exclusively on looking for malicious or malformed inputs. This is likely to miss at least one undesirable input, especially if the code's environment changes. This can give attackers enough room to bypass the intended validation. However, denylists can be useful for detecting potential attacks or determining which inputs are so malformed that they should be rejected outright.

Implementation
Output Encoding
Use and specify an output encoding that can be handled by the downstream component that is reading the output. Common encodings include ISO-8859-1, UTF-7, and UTF-8. When an encoding is not specified, a downstream component may choose a different encoding, either by assuming a default encoding or automatically inferring which encoding is being used, which can be erroneous. When the encodings are inconsistent, the downstream component might treat some character or byte sequences as special, even if they are not special in the original encoding. Attackers might then be able to exploit this discrepancy and conduct injection attacks; they even might be able to bypass protection mechanisms that assume the original encoding is also being used by the downstream component.

Implementation
Input Validation
Inputs should be decoded and canonicalized to the application's current internal representation before being validated (CWE-180). Make sure that the application does not decode the same input twice (CWE-174). Such errors could be used to bypass allowlist validation schemes by introducing dangerous inputs after they have been checked.

CVE-2000-1114
Source code disclosure using trailing dot
https://www.cve.org/CVERecord?id=CVE-2000-1114

CVE-2002-1986
Source code disclosure using trailing dot
https://www.cve.org/CVERecord?id=CVE-2002-1986

CVE-2004-2213
Source code disclosure using trailing dot or trailing encoding space "%20"
https://www.cve.org/CVERecord?id=CVE-2004-2213

CVE-2005-3293
Source code disclosure using trailing dot
https://www.cve.org/CVERecord?id=CVE-2005-3293

CVE-2004-0061
Bypass directory access restrictions using trailing dot in URL
https://www.cve.org/CVERecord?id=CVE-2004-0061

CVE-2000-1133
Bypass directory access restrictions using trailing dot in URL
https://www.cve.org/CVERecord?id=CVE-2000-1133

CVE-2001-1386
Bypass check for ".lnk" extension using ".lnk."
https://www.cve.org/CVERecord?id=CVE-2001-1386

CVE-2001-0693
Source disclosure via trailing encoded space "%20"
https://www.cve.org/CVERecord?id=CVE-2001-0693

CVE-2001-0778
Source disclosure via trailing encoded space "%20"
https://www.cve.org/CVERecord?id=CVE-2001-0778

CVE-2001-1248
Source disclosure via trailing encoded space "%20"
https://www.cve.org/CVERecord?id=CVE-2001-1248

CVE-2004-0280
Source disclosure via trailing encoded space "%20"
https://www.cve.org/CVERecord?id=CVE-2004-0280

CVE-2005-0622
Source disclosure via trailing encoded space "%20"
https://www.cve.org/CVERecord?id=CVE-2005-0622

CVE-2005-1656
Source disclosure via trailing encoded space "%20"
https://www.cve.org/CVERecord?id=CVE-2005-1656

CVE-2002-1603
Source disclosure via trailing encoded space "%20"
https://www.cve.org/CVERecord?id=CVE-2002-1603

CVE-2001-0054
Multi-Factor Vulnerability (MFV). directory traversal and other issues in FTP server using Web encodings such as "%20"; certain manipulations have unusual side effects.
https://www.cve.org/CVERecord?id=CVE-2001-0054

CVE-2002-1451
Trailing space ("+" in query string) leads to source code disclosure.
https://www.cve.org/CVERecord?id=CVE-2002-1451

CVE-2000-0293
Filenames with spaces allow arbitrary file deletion when the product does not properly quote them; some overlap with path traversal.
https://www.cve.org/CVERecord?id=CVE-2000-0293

CVE-2001-1567
"+" characters in query string converted to spaces before sensitive file/extension (internal space), leading to bypass of access restrictions to the file.
https://www.cve.org/CVERecord?id=CVE-2001-1567

CVE-2002-0253
Overlaps infoleak
https://www.cve.org/CVERecord?id=CVE-2002-0253

CVE-2001-0446
Application server allows remote attackers to read source code for .jsp files by appending a / to the requested URL.
https://www.cve.org/CVERecord?id=CVE-2001-0446

CVE-2004-0334
Bypass Basic Authentication for files using trailing "/"
https://www.cve.org/CVERecord?id=CVE-2004-0334

CVE-2001-0893
Read sensitive files with trailing "/"
https://www.cve.org/CVERecord?id=CVE-2001-0893

CVE-2001-0892
Web server allows remote attackers to view sensitive files under the document root (such as .htpasswd) via a GET request with a trailing /.
https://www.cve.org/CVERecord?id=CVE-2001-0892

CVE-2004-1814
Directory traversal vulnerability in server allows remote attackers to read protected files via .. (dot dot) sequences in an HTTP request.
https://www.cve.org/CVERecord?id=CVE-2004-1814

CVE-2002-1483
Read files with full pathname using multiple internal slash.
https://www.cve.org/CVERecord?id=CVE-2002-1483

CVE-1999-1456
Server allows remote attackers to read arbitrary files via a GET request with more than one leading / (slash) character in the filename.
https://www.cve.org/CVERecord?id=CVE-1999-1456

CVE-2004-0578
Server allows remote attackers to read arbitrary files via leading slash (//) characters in a URL request.
https://www.cve.org/CVERecord?id=CVE-2004-0578

CVE-2002-0275
Server allows remote attackers to bypass authentication and read restricted files via an extra / (slash) in the requested URL.
https://www.cve.org/CVERecord?id=CVE-2002-0275

CVE-2004-1032
Product allows local users to delete arbitrary files or create arbitrary empty files via a target filename with a large number of leading slash (/) characters.
https://www.cve.org/CVERecord?id=CVE-2004-1032

CVE-2002-1238
Server allows remote attackers to bypass access restrictions for files via an HTTP request with a sequence of multiple / (slash) characters such as http://www.example.com///file/.
https://www.cve.org/CVERecord?id=CVE-2002-1238

CVE-2004-1878
Product allows remote attackers to bypass authentication, obtain sensitive information, or gain access via a direct request to admin/user.pl preceded by // (double leading slash).
https://www.cve.org/CVERecord?id=CVE-2004-1878

CVE-2005-1365
Server allows remote attackers to execute arbitrary commands via a URL with multiple leading "/" (slash) characters and ".." sequences.
https://www.cve.org/CVERecord?id=CVE-2005-1365

CVE-2000-1050
Access directory using multiple leading slash.
https://www.cve.org/CVERecord?id=CVE-2000-1050

CVE-2001-1072
Bypass access restrictions via multiple leading slash, which causes a regular expression to fail.
https://www.cve.org/CVERecord?id=CVE-2001-1072

CVE-2004-0235
Archive extracts to arbitrary files using multiple leading slash in filenames in the archive.
https://www.cve.org/CVERecord?id=CVE-2004-0235

CVE-2002-1078
Directory listings in web server using multiple trailing slash
https://www.cve.org/CVERecord?id=CVE-2002-1078

CVE-2004-0847
web framework for .NET allows remote attackers to bypass authentication for .aspx files in restricted directories via a request containing a (1) "\" (backslash) or (2) "%5C" (encoded backslash)
https://www.cve.org/CVERecord?id=CVE-2004-0847

CVE-2000-0004
Server allows remote attackers to read source code for executable files by inserting a . (dot) into the URL.
https://www.cve.org/CVERecord?id=CVE-2000-0004

CVE-2002-0304
Server allows remote attackers to read password-protected files via a /./ in the HTTP request.
https://www.cve.org/CVERecord?id=CVE-2002-0304

CVE-1999-1083
Possibly (could be a cleansing error)
https://www.cve.org/CVERecord?id=CVE-1999-1083

CVE-2004-0815
"/./////etc" cleansed to ".///etc" then "/etc"
https://www.cve.org/CVERecord?id=CVE-2004-0815

CVE-2002-0112
Server allows remote attackers to view password protected files via /./ in the URL.
https://www.cve.org/CVERecord?id=CVE-2002-0112

CVE-2004-0696
List directories using desired path and "*"
https://www.cve.org/CVERecord?id=CVE-2004-0696

CVE-2002-0433
List files in web server using "*.ext"
https://www.cve.org/CVERecord?id=CVE-2002-0433

CVE-2001-1152
Proxy allows remote attackers to bypass denylist restrictions and connect to unauthorized web servers by modifying the requested URL, including (1) a // (double slash), (2) a /SUBDIR/.. where the desired file is in the parentdir, (3) a /./, or (4) URL-encoded characters.
https://www.cve.org/CVERecord?id=CVE-2001-1152

CVE-2000-0191
application check access for restricted URL before canonicalization
https://www.cve.org/CVERecord?id=CVE-2000-0191

CVE-2005-1366
CGI source disclosure using "dirname/../cgi-bin"
https://www.cve.org/CVERecord?id=CVE-2005-1366

CVE-1999-0012
Multiple web servers allow restriction bypass using 8.3 names instead of long names
https://www.cve.org/CVERecord?id=CVE-1999-0012

CVE-2001-0795
Source code disclosure using 8.3 file name.
https://www.cve.org/CVERecord?id=CVE-2001-0795

CVE-2005-0471
Multi-Factor Vulnerability. Product generates temporary filenames using long filenames, which become predictable in 8.3 format.
https://www.cve.org/CVERecord?id=CVE-2005-0471

File Processing

File or Directory

Path Equivalence

FIO02-C
Canonicalize path names originating from untrusted sources

Allowed
This CWE entry is at the Base level of abstraction, which is a preferred level of abstraction for mapping to the root causes of vulnerabilities.
Carefully read both the name and description to ensure that this mapping is an appropriate fit. Do not try to 'force' a mapping to a lower-level Base/Variant simply to comply with this preferred level of abstraction.

Some of these manipulations could be effective in path traversal issues, too.

PLOVER
2006-07-19
Draft 3
2006-07-19

Eric Dalci
Cigital
2008-07-01
updated Potential_Mitigations, Time_of_Introduction

CWE Content Team
MITRE
2008-09-08
updated Relationships, Other_Notes, Taxonomy_Mappings, Type

CWE Content Team
MITRE
2008-10-14
updated Description

CWE Content Team
MITRE
2008-11-24
updated Relationships, Taxonomy_Mappings

CWE Content Team
MITRE
2009-03-10
updated Relationships

CWE Content Team
MITRE
2009-05-27
updated Name

CWE Content Team
MITRE
2009-07-27
updated Potential_Mitigations

CWE Content Team
MITRE
2011-03-29
updated Other_Notes, Potential_Mitigations, Relationship_Notes

CWE Content Team
MITRE
2011-06-01
updated Common_Consequences

CWE Content Team
MITRE
2011-09-13
updated Relationships, Taxonomy_Mappings

CWE Content Team
MITRE
2012-05-11
updated Common_Consequences, Observed_Examples, Relationships

CWE Content Team
MITRE
2012-10-30
updated Potential_Mitigations

CWE Content Team
MITRE
2014-07-30
updated Detection_Factors, Relationships

CWE Content Team
MITRE
2017-11-08
updated Affected_Resources, Applicable_Platforms, Relationships, Taxonomy_Mappings

CWE Content Team
MITRE
2019-06-20
updated Related_Attack_Patterns

CWE Content Team
MITRE
2020-02-24
updated Potential_Mitigations, Relationships

CWE Content Team
MITRE
2020-06-25
updated Observed_Examples, Potential_Mitigations, Relationships

CWE Content Team
MITRE
2023-01-31
updated Description

CWE Content Team
MITRE
2023-04-27
updated Relationships

CWE Content Team
MITRE
2023-06-29
updated Mapping_Notes

CWE Content Team
MITRE
2023-10-26
updated Observed_Examples

CWE Content Team
MITRE
2024-02-29
4.14
2024-02-29
updated Observed_Examples

CWE Content Team
MITRE
2025-09-09
4.18
2025-09-09
updated Detection_Factors, Functional_Areas, References

CWE Content Team
MITRE
2025-12-11
4.19
2025-12-11
updated Observed_Examples, Relationships, Weakness_Ordinalities

Path Equivalence
Failure to Resolve Path Equivalence