11What's new in Tornado 6.5.0
22===========================
33
4- In progress
5- -----------
4+ May 15, 2025
5+ ------------
6+
7+ Security Improvements
8+ ~~~~~~~~~~~~~~~~~~~~~
9+
10+ - Previously, malformed ``multipart-form-data `` requests could log multiple warnings and
11+ constitute a denial-of-service attack. Now an exception is raised at the first error, so there
12+ is only one log message per request. This fixes
13+ `CVE-2025-47287 <https://github.com/tornadoweb/tornado/security/advisories/GHSA-7cx3-6m66-7c5m >`_.
614
715General Changes
816~~~~~~~~~~~~~~~
917
1018- Python 3.14 is now supported. Older versions of Tornado will work on Python 3.14 but may log
1119 deprecation warnings.
20+ - The free-threading mode of Python 3.13 is now supported on an experimental basis. Prebuilt
21+ wheels are not yet available for this configuration, but it can be built from source.
1222- The minimum supported Python version is 3.9.
1323
1424Deprecation Notices
1525~~~~~~~~~~~~~~~~~~~
1626
1727- Support for ``obs-fold `` continuation lines in HTTP headers is deprecated and will be removed in
1828 Tornado 7.0, as is the use of carriage returns without line feeds as header separators.
19- - The ``callback `` argument to `` websocket_connect ` ` is deprecated and will be removed in
29+ - The ``callback `` argument to `. websocket_connect ` is deprecated and will be removed in
2030 Tornado 7.0. Note that ``on_message_callback `` is not deprecated.
2131- The ``log_message `` and ``args `` attributes of `tornado.web.HTTPError ` are deprecated. Use the
2232 new ``get_message `` method instead.
@@ -38,8 +48,8 @@ Type Annotation Changes
3848- `.RequestHandler.get_cookie ` now has more accurate types.
3949- The return type of `.UIModule.render ` may now be either `str ` or `bytes `.
4050
41- `` tornado.httputil ` `
42- ~~~~~~~~~~~~~~~~~~~~
51+ `tornado.httputil `
52+ ~~~~~~~~~~~~~~~~~~
4353
4454- Support for ``obs-fold `` continuation lines in HTTP headers is deprecated and will be removed in
4555 Tornado 7.0, as is the use of carriage returns without line feeds as header separators.
@@ -53,14 +63,20 @@ Type Annotation Changes
5363 error to send more than one ``Host `` header, or to omit a ``Host `` header for a request that is
5464 not using HTTP/1.0.
5565
56- `` tornado.netutil ` `
57- ~~~~~~~~~~~~~~~~~~~
66+ `tornado.ioloop `
67+ ~~~~~~~~~~~~~~~~
5868
59- - ``.bind_unix_socket `` now supports the Linux abstract namespace.
69+ - Fixed a bug in which `contextvars ` that were set when the event loop was created were not
70+ available inside the event loop on Windows.
6071
72+ `tornado.netutil `
73+ ~~~~~~~~~~~~~~~~~
6174
62- ``tornado.platform.twisted ``
63- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
75+ - `.bind_unix_socket ` now supports the Linux abstract namespace.
76+
77+
78+ `tornado.platform.twisted `
79+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
6480
6581- ``TwistedResolver `` has been deleted. It was already deprecated and scheduled for removal
6682 in Tornado 7.0, but due to the adoption of RFC 8482 it no longer works for most
@@ -70,19 +86,19 @@ Type Annotation Changes
7086 and it is also deprecated. Most users should switch to the default resolver, which uses
7187 threads.
7288
73- `` tornado.web ` `
74- ~~~~~~~~~~~~~~~
89+ `tornado.web `
90+ ~~~~~~~~~~~~~
7591
7692- The set of characters allowed in (outgoing) HTTP headers now matches the RFCs. Specifically, tab
7793 characters are now allowed and DEL is not.
7894- Invalid ``If-Modified-Since `` headers are now ignored instead of causing a 500 error.
79- - ``% `` characters in the log message of `` tornado.web.HTTPError ` ` are no longer doubled when no
95+ - ``% `` characters in the log message of `tornado.web.HTTPError ` are no longer doubled when no
8096 additional arguments are passed. This matches the behavior of `logging.LogRecord `. A new method
8197 ``get_message `` has been added to ``HTTPError `` to allow access to the fully-substituted message;
8298 directly accessing ``log_message `` and ``args `` is deprecated.
8399
84- `` tornado.websocket ` `
85- ~~~~~~~~~~~~~~~~~~~~~
100+ `tornado.websocket `
101+ ~~~~~~~~~~~~~~~~~~~
86102
87103- Some bugs involving ``ping_interval `` and ``ping_timeout `` have been fixed. Setting the
88104 ``ping_timeout `` greater than the ``ping_interval `` is no longer supported. The default
0 commit comments