Every CVE Search/ Get API key

CVE-2024-1968

Authorization Header Leakage in scrapy/scrapy on Scheme Change Redirects

7.5 HighFix available

In scrapy/scrapy, an issue was identified where the Authorization header is not removed during redirects that only change the scheme (e.g., HTTPS to HTTP) but remain within the same domain. This behavior contravenes the Fetch standard, which mandates the removal of Authorization headers in cross-origin requests when the scheme, host, or port changes. Consequently, when a redirect downgrades from HTTPS to HTTP, the Authorization header may be inadvertently exposed in plaintext, leading to potential sensitive information disclosure to unauthorized actors. The flaw is located in the _build_redirect_request function of the redirect middleware.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
None
Availability
None

Exploit likelihood

0.69%Up 0.6 points since May 21, 2024
90%50%10%1%

What each source reports

CVE List Score used 7.5

Authorization Header Leakage in scrapy/scrapy on Scheme Change Redirects

In scrapy/scrapy, an issue was identified where the Authorization header is not removed during redirects that only change the scheme (e.g., HTTPS to HTTP) but remain within the same domain. This behavior contravenes the Fetch standard, which mandates the removal of Authorization headers in cross-origin requests when the scheme, host, or port changes. Consequently, when a redirect downgrades from HTTPS to HTTP, the Authorization header may be inadvertently exposed in plaintext, leading to potential sensitive information disclosure to unauthorized actors. The flaw is located in the _build_redirect_request function of the redirect middleware.

Record
CVE-2024-1968
CVSS 3.0
7.5 HighCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-200
Updated
2026-11-02
EUVDEUVD-2024-1419 7.5

In scrapy/scrapy, an issue was identified where the Authorization header is not removed during redirects that only change the scheme (e.g., HTTPS to HTTP) but remain within the same domain. This behavior contravenes the Fetch standard, which mandates the removal of Authorization headers in cross-origin requests when the scheme, host, or port changes. Consequently, when a redirect downgrades from HTTPS to HTTP, the Authorization header may be inadvertently exposed in plaintext, leading to potential sensitive information disclosure to unauthorized actors. The flaw is located in the _build_redirect_request function of the redirect middleware.

Record
EUVD-2024-1419
CVSS 3.0
7.5 HighCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Updated
2026-11-03
GitHub AdvisoriesGHSA-4qqq-9vqf-3h3f 5.9

Scrapy leaks the authorization header on same-domain but cross-origin redirects

Impact

Since version 2.11.1, Scrapy drops the Authorization header when a request is redirected to a different domain. However, it keeps the header if the domain remains the same but the scheme (http/https) or the port change, all scenarios where the header should also be dropped.

In the context of a man-in-the-middle attack, this could be used to get access to the value of that Authorization header

Patches

Upgrade to Scrapy 2.11.2.

Workarounds

There is no easy workaround for unpatched versions of Scrapy. You can replace the built-in redirect middlewares with custom ones patched for this issue, but you have to patch them yourself, manually.

References

This security issue was reported and fixed by @szarny at https://huntr.com/bounties/27f6a021-a891-446a-ada5-0226d619dd1a/.

Record
GHSA-4qqq-9vqf-3h3f
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-200
Updated
2026-11-02
NVD 7.5

In scrapy/scrapy, an issue was identified where the Authorization header is not removed during redirects that only change the scheme (e.g., HTTPS to HTTP) but remain within the same domain. This behavior contravenes the Fetch standard, which mandates the removal of Authorization headers in cross-origin requests when the scheme, host, or port changes. Consequently, when a redirect downgrades from HTTPS to HTTP, the Authorization header may be inadvertently exposed in plaintext, leading to potential sensitive information disclosure to unauthorized actors. The flaw is located in the _build_redirect_request function of the redirect middleware.

Record
CVE-2024-1968
CVSS 3.0
7.5 HighCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-200
Updated
2026-11-02
OSV 7.5

Authorization Header Leakage in scrapy/scrapy on Scheme Change Redirects

In scrapy/scrapy, an issue was identified where the Authorization header is not removed during redirects that only change the scheme (e.g., HTTPS to HTTP) but remain within the same domain. This behavior contravenes the Fetch standard, which mandates the removal of Authorization headers in cross-origin requests when the scheme, host, or port changes. Consequently, when a redirect downgrades from HTTPS to HTTP, the Authorization header may be inadvertently exposed in plaintext, leading to potential sensitive information disclosure to unauthorized actors. The flaw is located in the _build_redirect_request function of the redirect middleware.

Record
CVE-2024-1968
CVSS 3.0
7.5 HighCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-200
Updated
2026-11-02
OSVDEBIAN-CVE-2024-1968 7.5

In scrapy/scrapy, an issue was identified where the Authorization header is not removed during redirects that only change the scheme (e.g., HTTPS to HTTP) but remain within the same domain. This behavior contravenes the Fetch standard, which mandates the removal of Authorization headers in cross-origin requests when the scheme, host, or port changes. Consequently, when a redirect downgrades from HTTPS to HTTP, the Authorization header may be inadvertently exposed in plaintext, leading to potential sensitive information disclosure to unauthorized actors. The flaw is located in the _build_redirect_request function of the redirect middleware.

Record
DEBIAN-CVE-2024-1968
CVSS 3.0
7.5 HighCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Updated
2026-11-02
Show 5 moreShow less
OSVGHSA-4qqq-9vqf-3h3f 5.9

Scrapy leaks the authorization header on same-domain but cross-origin redirects

Impact

Since version 2.11.1, Scrapy drops the Authorization header when a request is redirected to a different domain. However, it keeps the header if the domain remains the same but the scheme (http/https) or the port change, all scenarios where the header should also be dropped.

In the context of a man-in-the-middle attack, this could be used to get access to the value of that Authorization header

Patches

Upgrade to Scrapy 2.11.2.

Workarounds

There is no easy workaround for unpatched versions of Scrapy. You can replace the built-in redirect middlewares with custom ones patched for this issue, but you have to patch them yourself, manually.

References

This security issue was reported and fixed by @szarny at https://huntr.com/bounties/27f6a021-a891-446a-ada5-0226d619dd1a/.

Record
GHSA-4qqq-9vqf-3h3f
CVSS 3.1
5.9 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
Weakness
CWE-200
Updated
2026-11-02
OSVUBUNTU-CVE-2024-1968 7.5

In scrapy/scrapy, an issue was identified where the Authorization header is not removed during redirects that only change the scheme (e.g., HTTPS to HTTP) but remain within the same domain. This behavior contravenes the Fetch standard, which mandates the removal of Authorization headers in cross-origin requests when the scheme, host, or port changes. Consequently, when a redirect downgrades from HTTPS to HTTP, the Authorization header may be inadvertently exposed in plaintext, leading to potential sensitive information disclosure to unauthorized actors. The flaw is located in the _build_redirect_request function of the redirect middleware.

Record
UBUNTU-CVE-2024-1968
CVSS 3.0
7.5 HighCVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Updated
2026-11-02
OSVopenSUSE-SU-2024:14130-1 No score

python-Scrapy-doc-2.11.2-1.1 on GA media

These are all security issues fixed in the python-Scrapy-doc-2.11.2-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2024:14130-1
Updated
2026-11-02
OSVPYSEC-2024-258 No score

In scrapy/scrapy, an issue was identified where the Authorization header is not removed during redirects that only change the scheme (e.g., HTTPS to HTTP) but remain within the same domain. This behavior contravenes the Fetch standard, which mandates the removal of Authorization headers in cross-origin requests when the scheme, host, or port changes. Consequently, when a redirect downgrades from HTTPS to HTTP, the Authorization header may be inadvertently exposed in plaintext, leading to potential sensitive information disclosure to unauthorized actors. The flaw is located in the _build_redirect_request function of the redirect middleware.

Record
PYSEC-2024-258
Updated
2026-11-02
OSVUSN-7476-1 No score

python-scrapy vulnerabilities

It was discovered that Scrapy improperly exposed HTTP authentication credentials to request targets, including during redirects. An attacker could use this issue to gain unauthorized access to user accounts. This issue only affected Ubuntu 18.04 LTS and Ubuntu 20.04 LTS. (CVE-2021-41125)

It was discovered that Scrapy did not remove the cookie header during cross-domain redirects. An attacker could possibly use this issue to gain unauthorized access to user accounts. This issue only affected Ubuntu 18.04 LTS, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS. (CVE-2022-0577)

It was discovered that Scrapy inefficiently parsed XML content. An attacker could use this issue to cause a denial of service by sending a crafted XML response. This issue only affected Ubuntu 18.04 LTS, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS. (CVE-2024-1892)

It was discovered that Scrapy did not properly check response size during decompression. An attacker could send a crafted response that would exhaust memory and cause a denial of service. This issue only affected Ubuntu 18.04 LTS, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS. (CVE-2024-3572)

It was discovered that Scrapy did not remove the authorization header during cross-domain redirects. An attacker could possibly use this issue to gain unauthorized access to user accounts. This issue only affected Ubuntu 18.04 LTS, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS. (CVE-2024-3574)

It was discovered that Scrapy did not remove the authorization header during redirects that change scheme but remain in the same domain. This issue could possibly be used by an attacker to expose sensitive information or to gain unauthorized access to user accounts. (CVE-2024-1968)

Record
USN-7476-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
scrapy
PyPI
before 2.11.2
2.11.2
python-scrapy
Debian:12
All versions, plus listed versions
2.10.0-12.11.0-12.11.0-22.11.1-12.11.1-2
Show 25 moreShow less
2.11.2-12.11.2-22.11.2-32.12.0-12.12.0-22.13.1-1~exp12.13.3-12.13.3-1~exp12.13.4-12.13.4-22.14.0-12.14.1-12.14.2-12.15.1-12.16.0-12.16.0-22.17.0-12.18.0-12.18.0-22.19.0-12.19.0-22.8.0-22.9.0-12.9.0-1~exp12.9.0-2
None known
python-scrapy
Debian:13
before 2.11.2-1
2.11.2-1
python-scrapy
Debian:14
before 2.11.2-1
2.11.2-1
scrapy
PyPI
before 2.11.2, plus listed versions
0.10.4.23640.12.0.25500.14.10.14.20.14.3
Show 45 moreShow less
0.14.40.16.00.16.10.16.20.16.30.16.40.16.50.18.00.18.10.18.20.18.30.18.40.20.00.20.10.20.20.22.00.22.10.22.20.24.00.24.10.24.20.24.30.24.40.24.50.24.60.70.80.91.0.01.0.0rc11.0.0rc21.0.0rc31.0.11.0.21.0.31.0.41.0.51.0.61.0.71.1.01.1.0rc11.1.0rc21.1.0rc31.1.0rc41.1.1
2.11.2
scrapy
PyPI
before 2.0.0, 2.0.0 up to 2.11.2, plus listed versions
0.10.4.23640.12.0.25500.14.10.14.20.14.3
Show 45 moreShow less
0.14.40.16.00.16.10.16.20.16.30.16.40.16.50.18.00.18.10.18.20.18.30.18.40.20.00.20.10.20.20.22.00.22.10.22.20.24.00.24.10.24.20.24.30.24.40.24.50.24.60.70.80.91.0.01.0.0rc11.0.0rc21.0.0rc31.0.11.0.21.0.31.0.41.0.51.0.61.0.71.1.01.1.0rc11.1.0rc21.1.0rc31.1.0rc41.1.1
2.0.02.11.2
python-scrapy
Ubuntu:16.04:LTS
All versions, plus listed versions
1.0.0-11.0.3-1
None known
python-scrapy
Ubuntu:Pro:18.04:LTS
before 1.5.0-1ubuntu0.1~esm1, plus listed versions
1.3.0-1~exp21.4.0-11.5.0-1
1.5.0-1ubuntu0.1~esm1
python-scrapy
Ubuntu:Pro:20.04:LTS
before 1.7.3-1ubuntu0.1~esm1, plus listed versions
1.7.3-1
1.7.3-1ubuntu0.1~esm1
python-scrapy
Ubuntu:Pro:22.04:LTS
before 2.5.1-2ubuntu0.1~esm1, plus listed versions
2.4.1-22.5.1-2
2.5.1-2ubuntu0.1~esm1
Show 6 moreShow less
Affected packages
PackageAffectedFixed
python-scrapy
Ubuntu:Pro:24.04:LTS
before 2.11.1-1ubuntu0.1~esm2, plus listed versions
2.10.0-12.11.0-12.11.0-22.11.1-1
2.11.1-1ubuntu0.1~esm2
python-scrapy
Ubuntu:Pro:18.04:LTS
From an advisory covering 6 CVEs
before 1.5.0-1ubuntu0.1~esm1, plus listed versions
1.3.0-1~exp21.4.0-11.5.0-1
1.5.0-1ubuntu0.1~esm1
python-scrapy
Ubuntu:Pro:20.04:LTS
From an advisory covering 6 CVEs
before 1.7.3-1ubuntu0.1~esm1, plus listed versions
1.7.3-1
1.7.3-1ubuntu0.1~esm1
python-scrapy
Ubuntu:Pro:22.04:LTS
From an advisory covering 6 CVEs
before 2.5.1-2ubuntu0.1~esm1, plus listed versions
2.4.1-22.5.1-2
2.5.1-2ubuntu0.1~esm1
python-scrapy
Ubuntu:Pro:24.04:LTS
From an advisory covering 6 CVEs
before 2.11.1-1ubuntu0.1~esm2, plus listed versions
2.10.0-12.11.0-12.11.0-22.11.1-1
2.11.1-1ubuntu0.1~esm2
python-Scrapy
openSUSE:Tumbleweed
before 2.11.2-1.1
2.11.2-1.1

History

History
RecordedChangedSources
affected, facts
aliasesEUVD
first indexedCVE List, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2024-1968 is a high vulnerability (CVSS 7.5) in Scrapy, published May 14, 2024. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.69%, the 52nd percentile. Fixed in scrapy 2.11.2.

References

Show 11 moreShow less
This page doesn't list everything

Left out here: 113 versions. The JSON record has them.

MoveEnter Open