Is werkzeug healthy, maintained, and safe?
Maintained, but watch it — Werkzeug has real signals (drift, thin maintenance, or advisories) worth tracking.
The verdict
On the OSPulse health scale, Werkzeug lands at 50/100 — medium risk, computed deterministically from live PyPI release history, and the OSV vulnerability database. Maintained, but watch it — Werkzeug has real signals (drift, thin maintenance, or advisories) worth tracking.
The last release was 2 April 2026 (157 days ago); still within a normal window, but the cadence has quietened. Across 105 releases the cadence has been steady, which is a good sign of an ongoing maintenance rhythm. PyPI doesn't expose a reliable maintainer count, so bus-factor isn't scored here — treat maintenance depth as unknown rather than assumed.
OSV lists 27 known advisories for Werkzeug, including 4 high. Review whether your version is in the affected range and whether a fixed release is available before depending on it. Each advisory is listed with its OSV/GHSA identifier below.
Werkzeug is usable but carries real signals — pin versions, watch for new advisories, and keep a fallback in mind. This is a one-time snapshot of a single package — real projects depend on dozens or hundreds of packages, and any one of them can drift or be compromised between releases. Run your own requirements.txt through the free health check, or have OSPulse monitor your whole dependency tree continuously.
Evidence trail — deterministic, auditable
Known vulnerabilities (27)
Werkzeug safe_join() allows Windows special device names
Werkzeug debugger vulnerable to remote execution when interacting with attacker controlled domain
Open Redirect in werkzeug
Werkzeug safe_join() allows Windows special device names with compound extensions
Werkzeug safe_join not safe on Windows
Pallets Werkzeug Insufficient Entropy
Pallets Werkzeug cross-site scripting vulnerability
Werkzeug safe_join() allows Windows special device names
Werkzeug DoS: High resource usage when parsing multipart/form-data containing a large part with CR/LF character at the beginning
Pallets Werkzeug vulnerable to Path Traversal
Incorrect parsing of nameless cookies leads to __Host- cookies bypass
Werkzeug possible resource exhaustion when parsing file data in forms
High resource usage when parsing multipart form data with many fields
Cross-site scripting (XSS) vulnerability in the render_full function in debug/tbtools.py in the debugger in Pallets Werkzeug before 0.11.11 (as used in Pallets Flask and other products) allows remote
Pallets Werkzeug before 0.15.3, when used with Docker, has insufficient debugger PIN randomness because Docker containers share the same machine id.
Open redirect vulnerability in werkzeug before 0.11.6 via a double slash in the URL.
** DISPUTED ** Improper parsing of HTTP requests in Pallets Werkzeug v2.1.0 and below allows attackers to perform HTTP Request Smuggling using a crafted HTTP request with multiple requests included in
Werkzeug is a comprehensive WSGI web application library. If an upload of a file that starts with CR or LF and then is followed by megabytes of data without these characters: all of these bytes are ap
Werkzeug is a comprehensive WSGI web application library. Browsers may allow "nameless" cookies that look like `=value` instead of `key=value`. A vulnerable browser may allow a compromised application
Werkzeug is a comprehensive WSGI web application library. Prior to version 2.2.3, Werkzeug's multipart form data parser will parse an unlimited number of parts, including file parts. Parts can be a sm
Pallets Werkzeug vulnerable to Path Traversal
Werkzeug debugger vulnerable to remote execution when interacting with attacker controlled domain
Werkzeug safe_join() allows Windows special device names with compound extensions
Werkzeug safe_join not safe on Windows
Werkzeug safe_join() allows Windows special device names
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 previou
Werkzeug possible resource exhaustion when parsing file data in forms
Key facts
- Latest version
- v3.1.8
- Last release
- 2 April 2026 (157 days ago)
- Total releases
- 105
- First release
- 9 December 2007
- Package age
- 18.8 years
- Maintainers
- not exposed by PyPI
- Known advisories
- 27
- Confidence
- High
Frequently asked
Is Werkzeug still maintained?
Partly — the most recent release was 2 April 2026 (157 days ago), so maintenance has slowed but not fully stopped.
Does Werkzeug have known security vulnerabilities?
Yes — OSV lists 27 advisories for Werkzeug. See the advisory list on this page for the OSV/GHSA identifiers.
Is Werkzeug safe to use?
Maintained, but watch it — Werkzeug has real signals (drift, thin maintenance, or advisories) worth tracking. OSPulse rates it 50/100 (medium risk) based on release recency, cadence and known vulnerabilities.
Alternatives to werkzeug
Other PyPI packages we've checked
werkzeug is one package. What about the other hundreds in your tree?
Paste your own requirements.txt into the free health check for an instant snapshot — or let OSPulse monitor your whole dependency tree continuously, before your CVE scanner wakes up.
Data from the PyPI registry & OSV.dev · snapshot generated 2026-09-07 · scores are deterministic and recomputed on each refresh.
