Disclosure Date 2024/05/19


Authorization header leakage on the same domain but cross-origin redirect in scrapy/scrapy

Scrapy におけるクロスオリジンリクエストによる Authorization ヘッダーの漏洩


Tsubasa (@Sz4rny)


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 potentially sensitive information disclosure to unauthorized actors. The flaw is located in the _build_redirect_request function of the redirect middleware.