未验证 提交 e3aa6c5e 编写于 作者: B Ben Darnell 提交者: GitHub

Merge pull request #3267 from bdarnell/branch6.3

Version 6.3.2
......@@ -4,6 +4,7 @@ Release notes
.. toctree::
:maxdepth: 2
releases/v6.3.2
releases/v6.3.1
releases/v6.3.0
releases/v6.2.0
......
What's new in Tornado 6.3.2
===========================
May 13, 2023
------------
Security improvements
~~~~~~~~~~~~~~~~~~~~~
- Fixed an open redirect vulnerability in StaticFileHandler under certain
configurations.
\ No newline at end of file
......@@ -22,8 +22,8 @@
# is zero for an official release, positive for a development branch,
# or negative for a release candidate or beta (after the base version
# number has been incremented)
version = "6.3.1"
version_info = (6, 3, 1, 0)
version = "6.3.2"
version_info = (6, 3, 2, 0)
import importlib
import typing
......
......@@ -2879,6 +2879,15 @@ class StaticFileHandler(RequestHandler):
# but there is some prefix to the path that was already
# trimmed by the routing
if not self.request.path.endswith("/"):
if self.request.path.startswith("//"):
# A redirect with two initial slashes is a "protocol-relative" URL.
# This means the next path segment is treated as a hostname instead
# of a part of the path, making this effectively an open redirect.
# Reject paths starting with two slashes to prevent this.
# This is only reachable under certain configurations.
raise HTTPError(
403, "cannot redirect path with two initial slashes"
)
self.redirect(self.request.path + "/", permanent=True)
return None
absolute_path = os.path.join(absolute_path, self.default_filename)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册