]> Cypherpunks repositories - gostls13.git/commit
[release-branch.go1.23] net/http: persist header stripping across repeated redirects
authorDamien Neil <dneil@google.com>
Fri, 22 Nov 2024 20:34:11 +0000 (12:34 -0800)
committerGopher Robot <gobot@golang.org>
Thu, 16 Jan 2025 19:00:39 +0000 (11:00 -0800)
commitbb8230f80535945648e8b56739ad450cf433eba9
treee08394437fd04acc8a5df84804e45e58bea259be
parentfdb8413fe588ec6dc31f1deaf43eb7202a76bb79
[release-branch.go1.23] net/http: persist header stripping across repeated redirects

When an HTTP redirect changes the host of a request, we drop
sensitive headers such as Authorization from the redirected request.
Fix a bug where a chain of redirects could result in sensitive
headers being sent to the wrong host:

  1. request to a.tld with Authorization header
  2. a.tld redirects to b.tld
  3. request to b.tld with no Authorization header
  4. b.tld redirects to b.tld
  3. request to b.tld with Authorization header restored

Thanks to Kyle Seely for reporting this issue.

For #70530
Fixes ##71211
Fixes CVE-2024-45336

Reviewed-on: https://go-internal-review.googlesource.com/c/go/+/1641
Reviewed-by: Roland Shoemaker <bracewell@google.com>
Reviewed-by: Tatiana Bradley <tatianabradley@google.com>
Commit-Queue: Roland Shoemaker <bracewell@google.com>
Change-Id: I326544358de71ff892d9e9fe338252a5dd04001f
Reviewed-on: https://go-internal-review.googlesource.com/c/go/+/1764
Reviewed-on: https://go-review.googlesource.com/c/go/+/643104
Auto-Submit: Michael Knyszek <mknyszek@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Pratt <mpratt@google.com>
src/net/http/client.go
src/net/http/client_test.go
src/net/http/internal/testcert/testcert.go