This vulnerability occurs when an application uses external input to build file paths, allowing attackers to bypass access controls. By submitting a path like 'fakedir/../realdir/filename', they can navigate out of a restricted directory ('fakedir') and into a protected one ('realdir'), accessing files the security mechanisms were designed to block.
This flaw is a specific type of path traversal attack where the security check fails due to how the path is interpreted. The application might correctly validate or restrict access to the direct path 'realdir/filename'. However, it doesn't account for directory traversal sequences ('../') being prepended. When it concatenates user input like 'fakedir/../realdir/filename' without proper normalization, the system resolves the '..' to move up a directory, effectively making the 'fakedir' part irrelevant and granting access to the real target. To prevent this, developers must implement canonicalization or path normalization before applying any security checks. This process resolves all '..' and '.' sequences and symbolic links to produce a single, absolute, and clean path. Access controls should then be applied to this final, normalized path, ensuring that any crafted input with traversal sequences is evaluated based on the actual file or directory it points to, not the deceptive path structure provided by the user.
Impact: Read Files or DirectoriesModify Files or Directories
Strategy: Input Validation