Sourced from werkzeug's releases.
3.1.9
This is the Werkzeug 3.1.9 security fix release, which fixes security issues and bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.
PyPI: https://pypi.org/project/Werkzeug/3.1.9/ Changes: https://werkzeug.palletsprojects.com/page/changes/#version-3-1-9 Milestone: https://github.com/pallets/werkzeug/milestone/46?closed=1
safe_joinon Windows does not allow special devices names with empty ADS markers on NTFS. https://github.com/pallets/werkzeug/security/advisories/GHSA-g6x2-hccm-hh4mProfilerMiddlewareusesprofiling.tracingon Python 3.15. #3207uri_to_iriandiri_to_uripreserve empty username, password, and port 0. #3189- Improve performance of
parse_options_header. #3231- Improve performance of
parse_etags. #3231- Improve performance of
parse_cookie. #3231get_hostalso checks that the port is in the valid range. #3236- The
intURL converter returns a 404 instead of 500 error when the value is longer thansys.get_int_max_str_digits(). #3237- Improve debugger PIN generation from cgroup data inside Podman. #3245
Authorizationparsingbasicauth disallows non-base64 characters. #3248application/x-www-form-urlencodedform data is no longer limited tomax_form_memory_size, onlymax_content_length. #3251LimitedStream.readintodoes not resize the buffer when it reads less than the remaining size. #3253- Rules with 10 or more converters in a single part assign matched values correctly. #3254
- The invalid
Rangesuffix length-0is no longer accepted. #3255
Sourced from werkzeug's changelog.
Version 3.1.9
Released 2026-09-27
safe_joinon Windows does not allow special devices names with empty ADS markers on NTFS. :ghsa:g6x2-hccm-hh4mProfilerMiddlewareusesprofiling.tracingon Python 3.15. :issue:3207uri_to_iriandiri_to_uripreserve empty username, password, and port 0. :issue:3189- Improve performance of
parse_options_header. :pr:3231- Improve performance of
parse_etags. :pr:3231- Improve performance of
parse_cookie. :pr:3231get_hostalso checks that the port is in the valid range. :pr:3236- The
intURL converter returns a 404 instead of 500 error when the value is longer thansys.get_int_max_str_digits(). :issue:3237- Improve debugger PIN generation from cgroup data inside Podman. :issue:
3245Authorizationparsingbasicauth disallows non-base64 characters. :pr:3248application/x-www-form-urlencodedform data is no longer limited tomax_form_memory_size, onlymax_content_length. :pr:3251LimitedStream.readintodoes not resize the buffer when it reads less than the remaining size. :pr:3253- Rules with 10 or more converters in a single part assign matched values correctly. :pr:
3254- The invalid
Rangesuffix length-0is no longer accepted. :pr:3255
6604c3b
release version 3.1.9a78b30a
update dependencies8d77320
disallow special name with ads (#3309)b2a2c09
disallow special name with ads4efac9d
add links400c23e
Allow flit_core 4.x (#3261)7132a19
allow flit_core 46fba87c
only accept ASCII digits263f5ca
disallow range -0 (#3255)0c419f9
disallow range -0