Skip to main content

Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

CVE-2023-40587

Severity Medium
Score 5.3/10

Summary

Pyramid is an open source Python web framework. A Path Traversal vulnerability in Pyramid versions 2.0a0 through 2.0.1. Impacts users of Python 3.11 that are using a Pyramid static view with a full filesystem path and have a `index.html` file that is located exactly one directory above the location of the static view's file system path. No further path traversal exists, and the only file that could be disclosed accidentally is `index.html`. Pyramid version 2.0.2 rejects any path that contains a "null-byte" out of caution. While valid in directory/file names, we would strongly consider it a mistake to use "null-bytes" in naming files/directories. Secondly, Python 3.11 and 3.12 has fixed the underlying issue in "os.path.normpath" to no longer truncate on the first "0x00" found, returning the behavior to pre-3.11 Python, which has an as of yet unreleased version. Fixes will be available in Python 3.12.0rc2 and 3.11.5. Some workarounds are available. Use a version of Python 3 that is not affected, downgrade to Python 3.10 series temporarily, or wait until Python 3.11.5 is released and upgrade to the latest version of Python 3.11 series.

  • LOW
  • NETWORK
  • NONE
  • UNCHANGED
  • NONE
  • NONE
  • LOW
  • NONE

CWE-22 - Path Traversal

Path traversal (or directory traversal), is a vulnerability that allows malicious users to traverse the server's root directory, gaining access to arbitrary files and folders such as application code & data, back-end credentials, and sensitive operating system files. In the worst-case scenario, an attacker could potentially execute arbitrary files on the server, resulting in a denial of service attack. Such an exploit may severely impact the integrity, confidentiality, and availability of an application.

Advisory Timeline

  • Published