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

Fixes CVE-2025-22870
For #71985

Change-Id: Ib72c96bd0ab44d9ed2ac1428e0a9fc245464b3fc
Reviewed-on: https://go-internal-review.googlesource.com/c/go/+/2141
Commit-Queue: Damien Neil <dneil@google.com>
Reviewed-by: Roland Shoemaker <bracewell@google.com>
Reviewed-by: Neal Patel <nealpatel@google.com>
Reviewed-on: https://go-review.googlesource.com/c/go/+/654695
Reviewed-by: Damien Neil <dneil@google.com>
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>

src/cmd/internal/moddeps/moddeps_test.go
src/vendor/golang.org/x/net/http/httpproxy/proxy.go

index 2def029325be558f9da0998b3ba520ae98326269..9a1d616861c1557a0c27984417273d9f529683e1 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(#71985) 1.23.7 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
        }