]> Cypherpunks repositories - gostls13.git/commitdiff
[release-branch.go1.24] all: updated vendored x/net with security fix
authorDamien Neil <dneil@google.com>
Thu, 27 Feb 2025 00:46:43 +0000 (16:46 -0800)
committerGopher Robot <gobot@golang.org>
Tue, 4 Mar 2025 18:41:47 +0000 (10:41 -0800)
6ed00d0 [internal-branch.go1.24-vendor] proxy, http/httpproxy: do not mismatch IPv6 zone ids against hosts

Fixes CVE-2025-22870
For #71986

Change-Id: I7bda0825f1a9470b0708714d9cc32b5eae212f8b
Reviewed-on: https://go-internal-review.googlesource.com/c/go/+/2121
Reviewed-by: Neal Patel <nealpatel@google.com>
Reviewed-by: Roland Shoemaker <bracewell@google.com>
Commit-Queue: Roland Shoemaker <bracewell@google.com>
Reviewed-on: https://go-review.googlesource.com/c/go/+/654715
Reviewed-by: Michael Pratt <mpratt@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Junyang Shao <shaojunyang@google.com>
Reviewed-by: Damien Neil <dneil@google.com>
src/cmd/internal/moddeps/moddeps_test.go
src/vendor/golang.org/x/net/http/httpproxy/proxy.go

index 2def029325be558f9da0998b3ba520ae98326269..0b43b20b3c19fa06ac7f59eec4c85f3712f8adbd 100644 (file)
@@ -33,6 +33,7 @@ import (
 // See issues 36852, 41409, and 43687.
 // (Also see golang.org/issue/27348.)
 func TestAllDependencies(t *testing.T) {
+       t.Skip("TODO(#71986): 1.24.1 contains unreleased changes from vendored modules")
        goBin := testenv.GoToolPath(t)
 
        // Ensure that all packages imported within GOROOT
index 6404aaf157d6ad735d344a22cf321782189744d9..d89c257ae723140ab6e6f6e129a9b646a66374c3 100644 (file)
@@ -14,6 +14,7 @@ import (
        "errors"
        "fmt"
        "net"
+       "net/netip"
        "net/url"
        "os"
        "strings"
@@ -177,8 +178,10 @@ func (cfg *config) useProxy(addr string) bool {
        if host == "localhost" {
                return false
        }
-       ip := net.ParseIP(host)
-       if ip != nil {
+       nip, err := netip.ParseAddr(host)
+       var ip net.IP
+       if err == nil {
+               ip = net.IP(nip.AsSlice())
                if ip.IsLoopback() {
                        return false
                }
@@ -360,6 +363,9 @@ type domainMatch struct {
 }
 
 func (m domainMatch) match(host, port string, ip net.IP) bool {
+       if ip != nil {
+               return false
+       }
        if strings.HasSuffix(host, m.host) || (m.matchHost && host == m.host[1:]) {
                return m.port == "" || m.port == port
        }