
CVE catalog
CVE-2026-102598
Werkzeug is a comprehensive WSGI web application library. Prior to 3.1.9, the safe_join function used by send_from_directory can allow a NUL: special-device path because safe_join checks the Windows d
- Severity
- Medium · CVSS 6.3
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Published
- Updated
- Source
- [NVD] · [CVE record]
- EPSS
- 0.37% · Oct 25, 2026
Werkzeug is a comprehensive WSGI web application library. Prior to 3.1.9, the safe_join function used by send_from_directory can allow a NUL: special-device path because safe_join checks the Windows device name without first removing an empty NTFS ADS marker. The trigger is that an application runs on Windows with NTFS and serves a user-specified path ending in a special device name such as NUL:. The attack mechanism is that a requested path ends in a Windows special device name with an empty ADS marker. The impact is that the special device opens successfully and the file read hangs indefinitely. This issue is fixed in version 3.1.9.
Vulnerable and fixed packages
Distribution-reported package versions and fixes. These do not depend on matching against the OpenFactory package catalog.
| Distribution | Package | Release | Version | Status |
|---|---|---|---|---|
| Debian | python-werkzeug | sid | 3.1.9-1 | not affected |
| Debian | python-werkzeug | forky | 3.1.9-1 | not affected |
| Debian | python-werkzeug | trixie | 3.1.3-2 | not affected |
| Debian | python-werkzeug | bookworm | 2.2.2-3+deb12u1 | not affected |
| PyPI | werkzeug | Not reported | 0.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.10 | vulnerable |
| PyPI | werkzeug | Not reported | 0.10.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.10.2 | vulnerable |
| PyPI | werkzeug | Not reported | 0.10.3 | vulnerable |
| PyPI | werkzeug | Not reported | 0.10.4 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.10 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.11 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.12 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.13 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.14 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.15 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.2 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.3 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.4 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.5 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.6 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.7 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.8 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.9 | vulnerable |
| PyPI | werkzeug | Not reported | 0.12 | vulnerable |
| PyPI | werkzeug | Not reported | 0.12.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.12.2 | vulnerable |
| PyPI | werkzeug | Not reported | 0.13 | vulnerable |
| PyPI | werkzeug | Not reported | 0.14 | vulnerable |
| PyPI | werkzeug | Not reported | 0.14.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.15.0 | vulnerable |
| PyPI | werkzeug | Not reported | 0.15.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.15.2 | vulnerable |
| PyPI | werkzeug | Not reported | 0.15.3 | vulnerable |
| PyPI | werkzeug | Not reported | 0.15.4 | vulnerable |
| PyPI | werkzeug | Not reported | 0.15.5 | vulnerable |
| PyPI | werkzeug | Not reported | 0.15.6 | vulnerable |
| PyPI | werkzeug | Not reported | 0.16.0 | vulnerable |
| PyPI | werkzeug | Not reported | 0.16.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.2 | vulnerable |
| PyPI | werkzeug | Not reported | 0.3 | vulnerable |
| PyPI | werkzeug | Not reported | 0.3.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.4 | vulnerable |
| PyPI | werkzeug | Not reported | 0.4.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.5 | vulnerable |
| PyPI | werkzeug | Not reported | 0.5.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.6 | vulnerable |
| PyPI | werkzeug | Not reported | 0.6.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.6.2 | vulnerable |
| PyPI | werkzeug | Not reported | 0.7 | vulnerable |
| PyPI | werkzeug | Not reported | 0.7.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.7.2 | vulnerable |
| PyPI | werkzeug | Not reported | 0.8 | vulnerable |
| PyPI | werkzeug | Not reported | 0.8.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.8.2 | vulnerable |
| PyPI | werkzeug | Not reported | 0.8.3 | vulnerable |
| PyPI | werkzeug | Not reported | 0.9 | vulnerable |
| PyPI | werkzeug | Not reported | 0.9.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.9.2 | vulnerable |
| PyPI | werkzeug | Not reported | 0.9.3 | vulnerable |
| PyPI | werkzeug | Not reported | 0.9.4 | vulnerable |
| PyPI | werkzeug | Not reported | 0.9.5 | vulnerable |
| PyPI | werkzeug | Not reported | 0.9.6 | vulnerable |
| PyPI | werkzeug | Not reported | 1.0.0 | vulnerable |
| PyPI | werkzeug | Not reported | 1.0.0rc1 | vulnerable |
| PyPI | werkzeug | Not reported | 1.0.1 | vulnerable |
| PyPI | werkzeug | Not reported | 2.0.0 | vulnerable |
| PyPI | werkzeug | Not reported | 2.0.0rc1 | vulnerable |
| PyPI | werkzeug | Not reported | 2.0.0rc2 | vulnerable |
| PyPI | werkzeug | Not reported | 2.0.0rc3 | vulnerable |
| PyPI | werkzeug | Not reported | 2.0.0rc4 | vulnerable |
| PyPI | werkzeug | Not reported | 2.0.0rc5 | vulnerable |
| PyPI | werkzeug | Not reported | 2.0.1 | vulnerable |
| PyPI | werkzeug | Not reported | 2.0.2 | vulnerable |
| PyPI | werkzeug | Not reported | 2.0.3 | vulnerable |
| PyPI | werkzeug | Not reported | 2.1.0 | vulnerable |
| PyPI | werkzeug | Not reported | 2.1.1 | vulnerable |
| PyPI | werkzeug | Not reported | 2.1.2 | vulnerable |
| PyPI | werkzeug | Not reported | 2.2.0 | vulnerable |
| PyPI | werkzeug | Not reported | 2.2.0a1 | vulnerable |
| PyPI | werkzeug | Not reported | 2.2.1 | vulnerable |
| PyPI | werkzeug | Not reported | 2.2.2 | vulnerable |
| PyPI | werkzeug | Not reported | 2.2.3 | vulnerable |
| PyPI | werkzeug | Not reported | 2.3.0 | vulnerable |
| PyPI | werkzeug | Not reported | 2.3.1 | vulnerable |
| PyPI | werkzeug | Not reported | 2.3.2 | vulnerable |
| PyPI | werkzeug | Not reported | 2.3.3 | vulnerable |
| PyPI | werkzeug | Not reported | 2.3.4 | vulnerable |
| PyPI | werkzeug | Not reported | 2.3.5 | vulnerable |
| PyPI | werkzeug | Not reported | 2.3.6 | vulnerable |
| PyPI | werkzeug | Not reported | 2.3.7 | vulnerable |
| PyPI | werkzeug | Not reported | 2.3.8 | vulnerable |
| PyPI | werkzeug | Not reported | 3.0.0 | vulnerable |
| PyPI | werkzeug | Not reported | 3.0.1 | vulnerable |
| PyPI | werkzeug | Not reported | 3.0.2 | vulnerable |
| PyPI | werkzeug | Not reported | 3.0.3 | vulnerable |
| PyPI | werkzeug | Not reported | 3.0.4 | vulnerable |
| PyPI | werkzeug | Not reported | 3.0.5 | vulnerable |
| PyPI | werkzeug | Not reported | 3.0.6 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.0 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.1 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.2 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.3 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.4 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.5 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.6 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.7 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.8 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.9 | fixed |
| PyPI | werkzeug | Not reported | 0.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.10 | vulnerable |
| PyPI | werkzeug | Not reported | 0.10.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.10.2 | vulnerable |
| PyPI | werkzeug | Not reported | 0.10.3 | vulnerable |
| PyPI | werkzeug | Not reported | 0.10.4 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.10 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.11 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.12 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.13 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.14 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.15 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.2 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.3 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.4 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.5 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.6 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.7 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.8 | vulnerable |
| PyPI | werkzeug | Not reported | 0.11.9 | vulnerable |
| PyPI | werkzeug | Not reported | 0.12 | vulnerable |
| PyPI | werkzeug | Not reported | 0.12.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.12.2 | vulnerable |
| PyPI | werkzeug | Not reported | 0.13 | vulnerable |
| PyPI | werkzeug | Not reported | 0.14 | vulnerable |
| PyPI | werkzeug | Not reported | 0.14.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.15.0 | vulnerable |
| PyPI | werkzeug | Not reported | 0.15.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.15.2 | vulnerable |
| PyPI | werkzeug | Not reported | 0.15.3 | vulnerable |
| PyPI | werkzeug | Not reported | 0.15.4 | vulnerable |
| PyPI | werkzeug | Not reported | 0.15.5 | vulnerable |
| PyPI | werkzeug | Not reported | 0.15.6 | vulnerable |
| PyPI | werkzeug | Not reported | 0.16.0 | vulnerable |
| PyPI | werkzeug | Not reported | 0.16.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.2 | vulnerable |
| PyPI | werkzeug | Not reported | 0.3 | vulnerable |
| PyPI | werkzeug | Not reported | 0.3.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.4 | vulnerable |
| PyPI | werkzeug | Not reported | 0.4.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.5 | vulnerable |
| PyPI | werkzeug | Not reported | 0.5.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.6 | vulnerable |
| PyPI | werkzeug | Not reported | 0.6.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.6.2 | vulnerable |
| PyPI | werkzeug | Not reported | 0.7 | vulnerable |
| PyPI | werkzeug | Not reported | 0.7.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.7.2 | vulnerable |
| PyPI | werkzeug | Not reported | 0.8 | vulnerable |
| PyPI | werkzeug | Not reported | 0.8.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.8.2 | vulnerable |
| PyPI | werkzeug | Not reported | 0.8.3 | vulnerable |
| PyPI | werkzeug | Not reported | 0.9 | vulnerable |
| PyPI | werkzeug | Not reported | 0.9.1 | vulnerable |
| PyPI | werkzeug | Not reported | 0.9.2 | vulnerable |
| PyPI | werkzeug | Not reported | 0.9.3 | vulnerable |
| PyPI | werkzeug | Not reported | 0.9.4 | vulnerable |
| PyPI | werkzeug | Not reported | 0.9.5 | vulnerable |
| PyPI | werkzeug | Not reported | 0.9.6 | vulnerable |
| PyPI | werkzeug | Not reported | 1.0.0 | vulnerable |
| PyPI | werkzeug | Not reported | 1.0.0rc1 | vulnerable |
| PyPI | werkzeug | Not reported | 1.0.1 | vulnerable |
| PyPI | werkzeug | Not reported | 2.0.0 | vulnerable |
| PyPI | werkzeug | Not reported | 2.0.0rc1 | vulnerable |
| PyPI | werkzeug | Not reported | 2.0.0rc2 | vulnerable |
| PyPI | werkzeug | Not reported | 2.0.0rc3 | vulnerable |
| PyPI | werkzeug | Not reported | 2.0.0rc4 | vulnerable |
| PyPI | werkzeug | Not reported | 2.0.0rc5 | vulnerable |
| PyPI | werkzeug | Not reported | 2.0.1 | vulnerable |
| PyPI | werkzeug | Not reported | 2.0.2 | vulnerable |
| PyPI | werkzeug | Not reported | 2.0.3 | vulnerable |
| PyPI | werkzeug | Not reported | 2.1.0 | vulnerable |
| PyPI | werkzeug | Not reported | 2.1.1 | vulnerable |
| PyPI | werkzeug | Not reported | 2.1.2 | vulnerable |
| PyPI | werkzeug | Not reported | 2.2.0 | vulnerable |
| PyPI | werkzeug | Not reported | 2.2.0a1 | vulnerable |
| PyPI | werkzeug | Not reported | 2.2.1 | vulnerable |
| PyPI | werkzeug | Not reported | 2.2.2 | vulnerable |
| PyPI | werkzeug | Not reported | 2.2.3 | vulnerable |
| PyPI | werkzeug | Not reported | 2.3.0 | vulnerable |
| PyPI | werkzeug | Not reported | 2.3.1 | vulnerable |
| PyPI | werkzeug | Not reported | 2.3.2 | vulnerable |
| PyPI | werkzeug | Not reported | 2.3.3 | vulnerable |
| PyPI | werkzeug | Not reported | 2.3.4 | vulnerable |
| PyPI | werkzeug | Not reported | 2.3.5 | vulnerable |
| PyPI | werkzeug | Not reported | 2.3.6 | vulnerable |
| PyPI | werkzeug | Not reported | 2.3.7 | vulnerable |
| PyPI | werkzeug | Not reported | 2.3.8 | vulnerable |
| PyPI | werkzeug | Not reported | 3.0.0 | vulnerable |
| PyPI | werkzeug | Not reported | 3.0.1 | vulnerable |
| PyPI | werkzeug | Not reported | 3.0.2 | vulnerable |
| PyPI | werkzeug | Not reported | 3.0.3 | vulnerable |
| PyPI | werkzeug | Not reported | 3.0.4 | vulnerable |
| PyPI | werkzeug | Not reported | 3.0.5 | vulnerable |
| PyPI | werkzeug | Not reported | 3.0.6 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.0 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.1 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.2 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.3 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.4 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.5 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.6 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.7 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.8 | vulnerable |
| PyPI | werkzeug | Not reported | 3.1.9 | fixed |
Fixed-version evidence
| Distribution | Package | Type | Release | Fixed version | Urgency | Origin | Bugs |
|---|---|---|---|---|---|---|---|
| Debian | python-werkzeug | source | sid | Not affected | unimportant | Not reported | Not reported |
| Debian | python-werkzeug | source | forky | Not affected | unimportant | Not reported | Not reported |
| Debian | python-werkzeug | source | trixie | Not affected | unimportant | Not reported | Not reported |
| Debian | python-werkzeug | source | bookworm | Not affected | unimportant | Not reported | Not reported |
| PyPI | werkzeug | PyPI | Not reported | 3.1.9 | Not reported | PYSEC-2026-4312 | Not reported |
| PyPI | werkzeug | PyPI | Not reported | 3.1.9 | Not reported | GHSA-G6X2-HCCM-HH4M | Not reported |
OpenFactory catalog packages
[Debian 12 (Bookworm)]
- [python3-werkzeug]Not affected
Source package: [python-werkzeug]
Details (2)
2.2.2-3+deb12u1· all · bookwormNot affected
nvd · python-werkzeug · debian · bookworm
2.2.2-3+deb12u1· all · bookwormNot affected
nvd · python-werkzeug · debian · bookworm
- [python-werkzeug-doc]Not affected
Source package: [python-werkzeug]
Details (2)
2.2.2-3+deb12u1· all · bookwormNot affected
nvd · python-werkzeug · debian · bookworm
2.2.2-3+deb12u1· all · bookwormNot affected
nvd · python-werkzeug · debian · bookworm
Observed:
References
- [https://ftp.suse.com/pub/projects/security/csaf/opensuse-su-2026_11943-1.json]
- [https://github.com/advisories/GHSA-g6x2-hccm-hh4m]
- [https://nvd.nist.gov/vuln/detail/CVE-2026-102598]
- [https://osv.dev/vulnerability/PYSEC-2026-4312]
- [https://security-tracker.debian.org/tracker/CVE-2026-102598]
- [https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-102598.json]
[Debian Security Tracker] · [FIRST EPSS] · [GitHub Advisory Database] · [National Vulnerability Database (NVD)] · [OSV Package Vulnerability Database] · [Red Hat security advisories and VEX] · [SUSE security advisories and VEX]