Vulnerability GHSA-pw9p-v7r6-gx4p

Low Risk
LOW RISK
CVSS Score: 3.0
Score Range: < 4.0
Low severity vulnerabilities (CVSS < 4.0). Hygiene issues that can accumulate but pose lower immediate risk.
16 days ago
October 28, 2026 at 10:43 PM UTC
Tornado: Open redirect in RedirectHandler via protocol-relative URLs
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.10 and 6.6a1 and 6.6b1 and 6.6rc1
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.10 and 6.6a1 and 6.6b1 and 6.6rc1

Summary

Tornado: Open redirect in RedirectHandler via protocol-relative URLs

Details

Summary

tornado.web.RedirectHandler builds its target URL by substituting parts of the request path into a template. Depending on where those substitutions appear in the template, an attacker can craft a request that redirects to a host of their choosing. This creates an open redirect on the application's domain, which can be used in phishing.

Impact

Applications are affected if they use RedirectHandler with a URL template where a regex capture group can influence the scheme or host of the redirect. This includes:

  • A substitution at the start of the path, for example (r"/(.*)/target", RedirectHandler, {"url": "/{0}/destination"}). A request to https://example.com//evil.com/target redirects to //evil.com/destination, a protocol-relative URL pointing to evil.com. Variants using backslashes or encoded characters have the same effect, because browsers treat them as equivalent to //.
  • A substitution directly after the host, for example (r"/old(.*)", RedirectHandler, {"url": "https://new.example.com{0}"}). A request to /old.evil.com/ or /[email protected]/ redirects to evil.com.
  • A template that begins with a substitution (such as "{0}"), which can be given an absolute URL.

Applications are not affected if their RedirectHandler templates use only static URLs, or if every substitution comes after a fixed host and a / (for example "/static/{0}" or "https://example.com/{0}"). Other uses of RequestHandler.redirect() are not affected by this advisory, although applications that pass user-controlled input to redirect() should validate it themselves.

Patches

Fixed in Tornado 6.6. RedirectHandler now returns a 400 error if the substituted values would change the scheme or host of the redirect from what the template specifies. As a result, substitutions can no longer be used in the scheme or host part of a template. The similar check in StaticFileHandler has also been hardened against backslash and whitespace variants.

Workarounds

  • Change RedirectHandler templates so every substitution comes after a fixed prefix ending in /, or write capture-group regexes that cannot match characters such as /, \, @, . or : where they could affect the host.
  • Alternatively, replace RedirectHandler with a custom handler that validates the target before calling self.redirect().

Credit

Reported by Longwei Wang (@gn00295120).

Related Vulnerabilities

Other vulnerabilities affecting the same packages

Low Risk
4 hours ago
Tornado: Open redirect via triple-slash redirect paths
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.10 and 6.6a1 and 6.6b1 and 6.6rc1 and 6.6 GHSA-5cjw-f85j-cv6r
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.10 and 6.6a1 and 6.6b1 and 6.6rc1 and 6.6 GHSA-5cjw-f85j-cv6r
Medium Risk
16 days ago
Tornado: Event loop blocking and excess memory use from chunked bodies with many small chunks
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.10 and 6.6a1 and 6.6b1 and 6.6rc1 GHSA-r4j5-9xpp-3985
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.10 and 6.6a1 and 6.6b1 and 6.6rc1 GHSA-r4j5-9xpp-3985
Medium Risk
16 days ago
Tornado: Quadratic CPU usage when parsing HTTP headers with line folding
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.10 and 6.6a1 and 6.6b1 and 6.6rc1 GHSA-pcg2-g6cj-q92c
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.10 and 6.6a1 and 6.6b1 and 6.6rc1 GHSA-pcg2-g6cj-q92c
Medium Risk
1 month ago
Tornado: Unbounded query-string argument count allows event-loop-stalling DoS
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.8 GHSA-3hv7-mjh2-fv65
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.8 GHSA-3hv7-mjh2-fv65
High Risk
1 month ago
tornado: CurlAsyncHTTPClient enforces no response-size limit — decompression bomb drives unbounded memory accumulation to OOM
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.8 GHSA-chx6-46f5-w4vp
0.2 and 1.0 and 1.1 and 1.1.1 and 1.2 and 1.2.1 and 2.0 and 2.1 and 2.1.1 and 2.2 and 2.2.1 and 2.3 and 2.4 and 2.4.1 and 3.0 and 3.0.1 - 3.0.2 and 3.1 and 3.1.1 and 3.2 and 3.2.1 - 3.2.2 and 4.0 and 4.0.1 - 4.0.2 and 4.1b2 and 4.1 and 4.2b1 and 4.2 and 4.2.1 and 4.3b1 and 4.3b2 and 4.3 and 4.4b1 and 4.4 and 4.4.1 - 4.4.3 and 4.5b1 and 4.5b2 and 4.5 and 4.5.1 - 4.5.3 and 5.0a1 and 5.0b1 and 5.0 and 5.0.1 - 5.0.2 and 5.1b1 and 5.1 and 5.1.1 and 6.0a1 and 6.0b1 and 6.0 and 6.0.1 - 6.0.4 and 6.1b1 and 6.1b2 and 6.1 and 6.2b1 and 6.2b2 and 6.2 and 6.3b1 and 6.3 and 6.3.1 - 6.3.3 and 6.4b1 and 6.4 and 6.4.1 - 6.4.2 and 6.5b1 and 6.5 and 6.5.1 - 6.5.8 GHSA-chx6-46f5-w4vp
View all vulnerabilities for these packages

Impacted packages

Timeline

Published
16 days ago
October 28, 2026 at 10:43 PM UTC
Fixed (6.6)
23 days ago
October 21, 2026 at 03:30 PM UTC
Last Modified
16 days ago
October 28, 2026 at 11:00 PM UTC