GitHub Advisoryadvisory · PyPI

GHSA-3x9g-8vmp-wqvf Tornado: Authorization header forwarded across cross-origin redirects in SimpleAsyncHTTPClient

HIGH Published 2026-06-15 Modified 2026-06-15 Official page ↗
Aliases
CVE-2026-49853
Ecosystem
PyPI
Packages
tornado
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
Weaknesses
CWE-200
Reviewed
2026-06-15

Affected packages

• PyPI tornado: < 6.5.6 → fixed in 6.5.6

Description

Summary When SimpleAsyncHTTPClient follows a 3xx redirect, it shallow-copies the original HTTPRequest, rewrites the URL, decrements max_redirects, and removes only the Host header. It does not clear Authorization, auth_username, auth_password, or auth_mode when the redirect target changes origin. As a result, credentials intended for one origin can be forwarded to a different origin when follow_redirects=True, which is the default. Beginning in Tornado 6.5.6, `SimpleAsyncHTTPClient` matches the default behavior of `libcurl` (and therefore `CurlAsyncHTTPClient`): When a redirect changes the scheme, host, or port of the url, the `Authorization` and `Cookie` headers will be removed when following the redirect.

Related

Alias · CVE (1)

  • CVE-2026-49853 Tornado is a Python web framework and asynchronous networking library. vulnerability

Weakness · CWE (1)

  • CWE-200 Exposure of Sensitive Information to an Unauthorized Actor weakness

References