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. 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. #3231 get_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