CVE-2026-49853
High · 7.7CVSS
7.7
EPSS
0.4%
Published
Jul 14, 2026
CISA due date
—
Cloudanix analysis
A bug in a Python web tool could accidentally send login details to the wrong websites when following links.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Web Framework
- Class
- Credential Exposure
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The vulnerability allows authentication credentials (Authorization headers, usernames, passwords, and auth modes) to be sent to unintended hosts during HTTP redirects that change the scheme, host, or port, because only the Host header is stripped from shallow-copied request objects.
Why it matters to the business
Organizations using affected Tornado versions risk leaking sensitive credentials to third-party servers if their applications follow redirects, potentially leading to unauthorized access or data breaches.
How an attack unfolds
An attacker configures a server to issue a redirect response that points to a different origin. When a Tornado client using SimpleAsyncHTTPClient makes an authenticated request that follows the redirect, the credentials are included in the new request to the attacker's server.
How to fix it
Upgrade Tornado to version 6.5.6 or later to ensure proper handling of authentication headers during redirects.
How to confirm the fix worked
Verify the installed Tornado version is 6.5.6 or higher. Test redirect scenarios with authentication to confirm credentials are not leaked.
Typical attack path
- Identify an application using Tornado's SimpleAsyncHTTPClient with authentication.
- Set up a redirect from a trusted endpoint to an attacker-controlled server.
- Trigger the authenticated request that follows the redirect.
- Capture the leaked Authorization headers or credentials on the attacker server.
How to detect it
Monitor application logs for HTTP requests involving redirects where authentication headers are present; look for requests to unexpected domains carrying auth info.
What your security team should do
- Upgrade all Tornado installations to 6.5.6 or newer immediately.
- Review and audit code using SimpleAsyncHTTPClient for authentication usage.
- Implement network monitoring for unexpected credential transmissions.
The record
Tornado is a Python web framework and asynchronous networking library. Prior to 6.5.6, SimpleAsyncHTTPClient shallow-copied redirected requests and removed only the Host header, leaving Authorization, auth_username, auth_password, and auth_mode in place when a redirect changed scheme, host, or port. This issue is fixed in version 6.5.6.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| openSUSE:Leap 16.0 | python-tornado6 | 0 | 6.5-160000.5.1 |
| openSUSE:Tumbleweed | python-tornado6 | 0 | 6.5.7-1.1 |
Related vulnerabilities
- CVE-2026-49854 Tornado is a Python web framework and asynchronous networking library. Also affects python-tornado6
- CVE-2026-49855 Tornado is a Python web framework and asynchronous networking library. Also affects python-tornado6
- CVE-2026-31958 Tornado is a Python web framework and asynchronous networking library. Also affects python-tornado6
- CVE-2025-67726 Tornado is Vulnerable to Quadratic DoS via Crafted Multipart Parameters Also affects python-tornado6
- CVE-2025-67725 Tornado is Vulnerable to Quadratic DoS via Repeated Header Coalescing Also affects python-tornado6
- CVE-2025-67724 Tornado vulnerable to Header Injection and XSS via reason argument Also affects python-tornado6
- CVE-2025-47287 Tornado vulnerable to excessive logging caused by malformed multipart form data Also affects python-tornado6
- CVE-2024-52804 Tornado has an HTTP cookie parsing DoS vulnerability Also affects python-tornado6