GitHub Advisoryadvisory · PyPI

GHSA-wxq4-cc2q-338q WsgiDAV encoded dot segments can escape filesystem share roots

HIGH Published 2026-06-11 Modified 2026-06-11 Official page ↗
Aliases
CVE-2026-48099
Ecosystem
PyPI
Packages
wsgidav
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:L
Weaknesses
CWE-22
Reviewed
2026-06-11

Affected packages

• PyPI wsgidav: < 4.3.4 → fixed in 4.3.4

Description

Impact WsgiDAV 4.3.3 can allow a WebDAV request path containing an encoded parent-directory segment to escape the configured filesystem share root in a specific path layout. Patches The issue is fixed with version 4.3.4. Preconditions The practical impact depends on the deployment. The deployment uses a filesystem-backed WsgiDAV share. The attacker can send WebDAV requests accepted by that share. This may be an anonymous share or an authenticated WebDAV user. This is not an authentication bypass. Details The issue is in `FilesystemProvider._loc_to_file_path()`. The method builds a candidate path with `os.path.abspath(os.path.join(root_path, *path_parts))`, then checks containment with `file_path.startswith(root_path)`. This is not path-boundary aware. For example, if the configured share root is `/tmp/share`, a resolved sibling path such as `/tmp/share_evil/secret.txt` still starts with the string `/tmp/share`. In a local proof, this allowed GET, PUT, and DELETE requests to operate on files outside the configured share root. The WSGI/server layer forwards the encoded dot segment to WsgiDAV's PATH_INFO. The local proof used `/%2e%2e/...`, which wsgiref passed through as `/../...`. A sibling or neighboring path exists whose absolute path starts with the configured root path string, such as `/tmp/share` and `/tmp/share_evil`. The WsgiDAV process has OS permissions for the outside path.

Related

Alias · CVE (1)

  • CVE-2026-48099 WsgiDAV is a generic and extendable WebDAV server based on WSGI. vulnerability

Weakness · CWE (1)

  • CWE-22 Improper Limitation of a Pathname to a Restricted Directory weakness

References