CVE-2026-116578
NoneCVSS
—
EPSS
0.5%
Published
Oct 26, 2026
CISA due date
—
Cloudanix analysis
A flaw in a popular Python web library can let attackers send users to fake websites that look like they come from your application, making phishing easier.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Other
- Component
- Web Framework
- Class
- Open Redirect
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Tornado's RedirectHandler permits regex capture groups in URL templates to inject attacker-controlled values at the start of a path, immediately after a host, or at the template beginning, allowing protocol-relative, absolute, or host-extension redirects that browsers treat as external destinations.
Why it matters to the business
Attackers can trick users into visiting malicious sites while the link appears to come from a trusted application domain, increasing successful phishing and eroding user trust without requiring authentication or code execution.
How an attack unfolds
An attacker identifies a RedirectHandler route that uses a vulnerable template placement, crafts a request whose path contains a capture substitution that alters the redirect target to an attacker-controlled scheme or host, and delivers the resulting link via phishing to cause the victim browser to follow the open redirect.
How to fix it
Upgrade Tornado to version 6.6 or later. Review all RedirectHandler route definitions and replace any templates that permit substitutions at the start of a path or immediately after a host with static templates or patterns that enforce a leading slash after the host.
How to confirm the fix worked
Confirm the installed Tornado version is 6.6 or newer. Test RedirectHandler routes with crafted paths containing leading substitutions and verify that redirects remain within the intended domain and scheme.
Typical attack path
- Map application routes to locate RedirectHandler instances using vulnerable template patterns
- Craft a request path containing a regex capture that places an attacker-controlled value at the start, after the host, or at the template root
- Deliver the resulting link to a victim through phishing or other social engineering
- Victim browser follows the redirect to an attacker-controlled destination
How to detect it
Review web server and application logs for redirect responses containing unexpected external hosts, protocol-relative URLs, or backslash-prefixed locations originating from RedirectHandler routes. Correlate with user-agent strings or referrers associated with phishing campaigns.
What your security team should do
- Prioritize upgrade of all Tornado installations to 6.6 within the next maintenance window
- Audit application route configurations for any use of RedirectHandler with dynamic path templates
- Add web application firewall rules that block requests containing protocol-relative or absolute redirect targets in known redirect paths
- Monitor for unexpected external redirects in application logs
The record
Tornado is a Python web framework and asynchronous networking library. Prior to 6.6, tornado.web.RedirectHandler URL templates can place regex-capture substitutions where crafted request paths change the redirect scheme or network location. Affected placements include substitutions at the start of a path, directly after a fixed host, or at the beginning of the template, including protocol-relative, absolute, backslash, encoded, host-extension, and user-info variants interpreted by browsers as attacker-controlled destinations. Static templates and substitutions after a fixed host followed by a slash are not affected. An attacker can use the resulting open redirect on the application's domain for phishing. This issue is fixed in version 6.6.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-107020 An issue in the activity.LoadLinkLaterActivity component of FeedEx / Handy News Reader… CWE-601
- CVE-2026-118425 A flaw was found in the secure-redirect-uris-enforcer client policy of Keycloak, an… CWE-601
- CVE-2026-118656 Echo is a Go web framework. CWE-601
- CVE-2026-118658 Echo is a Go web framework. CWE-601
- CVE-2026-111031 The Welcart e-Commerce WordPress plugin before 2.12.6 does not validate a user-supplied… CWE-601
- CVE-2026-117553 Umbraco CMS before 17.7.2 and 18.2.2 contains an authentication bypass vulnerability that… CWE-601
- CVE-2026-115537 A weakness has been identified in gedelumbung HospitalManagement up to… CWE-601
- CVE-2026-114614 Authlib is a Python library which builds OAuth and OpenID Connect servers. CWE-601