Medium severity · published Feb 21, 2026
CVE-2026-27199
Werkzeug safe_join() allows Windows special device names
5.3
CVSS
0.6%
EPSS
No
On KEV
Description
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 vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
None
Confidentiality
None
Integrity
None
Availability
Low
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.6% · higher than 50% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
WE
werkzeug · pallets
< 3.1.6 · source: vendor, NVD
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-27199
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-27199
Patch
https://github.com/pallets/werkzeug/commit/f407712fdc60a09c2b3f4fe7db557703e5d9338d
Release Notes
https://github.com/pallets/werkzeug/releases/tag/3.1.6
Vendor Advisory
https://github.com/pallets/werkzeug/security/advisories/GHSA-29vq-49wr-vm6x
More from werkzeug
6.3
CVE-2026-102598
Werkzeug safe_join() allows Windows special device names
