curl might leak authentication or cookie header data on HTTP redirects to the same host but another port number.
When asked to send custom headers or cookies in its HTTP requests, curl sends that set of headers only to the host which name is used in the initial URL, so that redirects to other hosts make curl send the data to those. However, due to a flawed check, curl wrongly also sends that same set of headers to the hosts that are identical to the first one but use a different port number or URL scheme. Contrary to expectation and intention.
Sending the same set of headers to a server on a different port number is a
problem for applications that pass on custom Authorization:
or Cookie:
headers, as those headers often contain privacy sensitive information or data.
curl and libcurl have options that allow users to opt out from this check, but that is not set by default.