Skip to content

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

Moderate severity GitHub Reviewed Published May 14, 2024 in scrapy/scrapy • Updated May 20, 2024

Package

pip Scrapy (pip)

Affected versions

< 2.11.2

Patched versions

2.11.2

Description

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/.

References

@Gallaecio Gallaecio published to scrapy/scrapy May 14, 2024
Published to the GitHub Advisory Database May 14, 2024
Reviewed May 14, 2024
Last updated May 20, 2024

Severity

Moderate
5.9
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
High
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N

Weaknesses

CVE ID

CVE-2024-1968

GHSA ID

GHSA-4qqq-9vqf-3h3f

Source code

Credits

Checking history
See something to contribute? Suggest improvements for this vulnerability.