CVE-2026-27199
CVE-2026-27199 · Werkzeug safe_join() allows Windows special device names
This page contains facts from public vulnerability sources. Check the original advisory before updating.
Werkzeug is a comprehensive WSGI web application library. Versions 3.1.5 and below, the safe_join function allows Windows device names as filenames if preceded by other path segments. This was previously reported as GHSA-hgf8-39gv-g3f2, but the added filtering failed to account for the fact that safe_join accepts paths with multiple segments, such as example/NUL. The function send_from_directory uses safe_join to safely serve files at user-specified paths under a directory. If the application is running on Windows, and the requested path ends with a special device name, the file will be opened successfully, but reading will hang indefinitely. This issue has been fixed in version 3.1.6.
CVSS 6.3 · Medium · EPSS 0.6% · Fix available
- Published
- Updated
Stack: python
Affected products and versions
werkzeug
- Versions
- < 3.1.6: Affected
No fix published
werkzeug PyPI
- Versions
- 0.1
- 0.10
- 0.10.1
- 0.10.2
- 0.10.3
- 0.10.4
- 0.11
- 0.11.1
- 0.11.10
- 0.11.11
- 0.11.12
- 0.11.13
- 0.11.14
- 0.11.15
- 0.11.2
- 0.11.3
- 0.11.4
- 0.11.5
- 0.11.6
- 0.11.7
- 0.11.8
- 0.11.9
- 0.12
- 0.12.1
- 0.12.2
- 0.13
- 0.14
- 0.14.1
- 0.15.0
- 0.15.1
- 0.15.2
- 0.15.3
- 0.15.4
- 0.15.5
- 0.15.6
- 0.16.0
- 0.16.1
- 0.2
- 0.3
- 0.3.1
- 0.4
- 0.4.1
- 0.5
- 0.5.1
- 0.6
- 0.6.1
- 0.6.2
- 0.7
- 0.7.1
- 0.7.2
- 0.8
- 0.8.1
- 0.8.2
- 0.8.3
- 0.9
- 0.9.1
- 0.9.2
- 0.9.3
- 0.9.4
- 0.9.5
- 0.9.6
- 1.0.0
- 1.0.0rc1
- 1.0.1
- 2.0.0
- 2.0.0rc1
- 2.0.0rc2
- 2.0.0rc3
- 2.0.0rc4
- 2.0.0rc5
- 2.0.1
- 2.0.2
- 2.0.3
- 2.1.0
- 2.1.1
- 2.1.2
- 2.2.0
- 2.2.0a1
- 2.2.1
- 2.2.2
- 2.2.3
- 2.3.0
- 2.3.1
- 2.3.2
- 2.3.3
- 2.3.4
- 2.3.5
- 2.3.6
- 2.3.7
- 2.3.8
- 3.0.0
- 3.0.1
- 3.0.2
- 3.0.3
- 3.0.4
- 3.0.5
- 3.0.6
- 3.1.0
- 3.1.1
- 3.1.2
- 3.1.3
- 3.1.4
- 3.1.5
- Affected ranges
- ECOSYSTEM: < 3.1.6
Update to 3.1.6