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.
En scrapy/scrapy, se identificó un problema por el cual el encabezado Authorization no se elimina durante las redirecciones que solo cambian el esquema (por ejemplo, HTTPS a HTTP) pero permanecen dentro del mismo dominio. Este comportamiento contraviene el estándar Fetch, que exige la eliminación de encabezados de Autorización en solicitudes de origen cruzado cuando cambia el esquema, el host o el puerto. En consecuencia, cuando una redirección degrada de HTTPS a HTTP, el encabezado de Autorización puede quedar expuesto inadvertidamente en texto sin formato, lo que lleva a una posible divulgación de información confidencial a actores no autorizados. La falla se encuentra en la función _build_redirect_request del middleware de redirección.