Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: golang/go
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: go1.25.5
Choose a base ref
...
head repository: golang/go
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: go1.25.6
Choose a head ref
  • 14 commits
  • 51 files changed
  • 10 contributors

Commits on Dec 3, 2025

  1. [release-branch.go1.25] crypto/tls: use inner hello for earlyData whe…

    …n using QUIC and ECH
    
    I don't think we have good QUIC ECH tests. BoGo has some for this, but
    I'm not sure how easy it would be to enable those for QUIC.
    
    Updates #76283
    Fixes #76409
    
    Change-Id: I0ffa535fd89a624b7f9bfd73441ce2a1683e0549
    Reviewed-on: https://go-review.googlesource.com/c/go/+/720920
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Auto-Submit: Roland Shoemaker <roland@golang.org>
    Reviewed-by: Damien Neil <dneil@google.com>
    (cherry picked from commit 31aa9f8)
    Reviewed-on: https://go-review.googlesource.com/c/go/+/726380
    Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
    Auto-Submit: Dmitri Shuralyov <dmitshur@google.com>
    rolandshoemaker authored and gopherbot committed Dec 3, 2025
    Configuration menu
    Copy the full SHA
    d5bfdcb View commit details
    Browse the repository at this point in the history

Commits on Dec 19, 2025

  1. [release-branch.go1.25] os,internal/poll: don't call IsNonblock for c…

    …onsoles and Stdin
    
    windows.IsNonblock can block for synchronous handles that have an
    outstanding I/O operation. Console handles are always synchronous, so
    we should not call IsNonblock for them. Stdin is often a pipe, and
    almost always a synchronous handle, so we should not call IsNonblock for
    it either. This avoids potential deadlocks during os package
    initialization, which calls NewFile(syscall.Stdin).
    
    Fixes #76392
    
    Change-Id: I1603932b0a99823019aa0cad960f94cee9996505
    Reviewed-on: https://go-review.googlesource.com/c/go/+/724640
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Damien Neil <dneil@google.com>
    Auto-Submit: Damien Neil <dneil@google.com>
    Reviewed-by: Cherry Mui <cherryyz@google.com>
    (cherry picked from commit CL 724640)
    Reviewed-on: https://go-review.googlesource.com/c/go/+/725580
    Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
    qmuntal authored and mknyszek committed Dec 19, 2025
    Configuration menu
    Copy the full SHA
    93f5d1c View commit details
    Browse the repository at this point in the history
  2. [release-branch.go1.25] os: allow direntries to have zero inodes on L…

    …inux
    
    Some Linux filesystems have been known to return valid enties with
    zero inodes. This new behavior also puts Go in agreement with recent
    glibc.
    
    Fixes #76620
    
    Change-Id: Ieaf50739a294915a3ea2ef8c5a3bb2a91a186881
    GitHub-Last-Rev: 8f83d00
    GitHub-Pull-Request: #76448
    Reviewed-on: https://go-review.googlesource.com/c/go/+/724220
    Reviewed-by: Cherry Mui <cherryyz@google.com>
    Reviewed-by: Ian Lance Taylor <iant@golang.org>
    Auto-Submit: Ian Lance Taylor <iant@golang.org>
    Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-on: https://go-review.googlesource.com/c/go/+/725340
    vasi authored and mknyszek committed Dec 19, 2025
    Configuration menu
    Copy the full SHA
    ea603ee View commit details
    Browse the repository at this point in the history

Commits on Dec 29, 2025

  1. [release-branch.go1.25] runtime/race: set missing argument frame for …

    …ppc64x atomic And/Or wrappers
    
    The ppc64x TSAN wrappers for atomic And/Or did not initialize R6 with the Go argument frame before calling racecallatomic. Since racecallatomic expects R6 to point to the argument list and dereferences it unconditionally, this led to a nil-pointer dereference under -race.
    
    Other atomic TSAN wrappers (Load/Store/Add/Swap/CAS) already set up R6 in the expected way. This change aligns the And/Or wrappers with the rest by adding the missing R6 initialisation.
    
    This keeps the behavior consistent across all atomic operations on ppc64x.
    
    Updates #76776.
    Change-Id: Iaf578449a6171a0c6f7c33ec6f64c1251297ae6d
    Reviewed-on: https://go-review.googlesource.com/c/go/+/718560
    Reviewed-by: Mark Freeman <markfreeman@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Cherry Mui <cherryyz@google.com>
    Reviewed-by: Paul Murphy <paumurph@redhat.com>
    (cherry picked from commit 44cb824)
    Reviewed-on: https://go-review.googlesource.com/c/go/+/728900
    Reviewed-by: David Chase <drchase@google.com>
    jkrishmys authored and cherrymui committed Dec 29, 2025
    Configuration menu
    Copy the full SHA
    6f07a57 View commit details
    Browse the repository at this point in the history

Commits on Dec 30, 2025

  1. [release-branch.go1.25] runtime: mark getfp as nosplit

    When compiling with -l, we can't take a stack split here.
    
    Fixes #76761
    
    Change-Id: Ieab1225c6259c7f16bb5188aa84bff615d9db2e5
    Reviewed-on: https://go-review.googlesource.com/c/go/+/728060
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Auto-Submit: Keith Randall <khr@golang.org>
    Reviewed-by: Cherry Mui <cherryyz@google.com>
    Reviewed-by: Keith Randall <khr@google.com>
    (cherry picked from commit d4972f6)
    Reviewed-on: https://go-review.googlesource.com/c/go/+/728581
    randall77 authored and cherrymui committed Dec 30, 2025
    Configuration menu
    Copy the full SHA
    4e531b2 View commit details
    Browse the repository at this point in the history

Commits on Jan 7, 2026

  1. [release-branch.go1.25] cmd/compile: handle propagating an out-of-ran…

    …ge jump table index
    
    For an out-of-range jump table index, the constant facts should not be
    propagated to the destinations.
    
    Fixes #76967
    
    Change-Id: Iff29814cb466c7aaa432cec212e5387665c45afc
    Reviewed-on: https://go-review.googlesource.com/c/go/+/731860
    Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com>
    Reviewed-by: David Chase <drchase@google.com>
    Reviewed-by: Cherry Mui <cherryyz@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-on: https://go-review.googlesource.com/c/go/+/732460
    Reviewed-by: Junyang Shao <shaojunyang@google.com>
    Commit-Queue: Junyang Shao <shaojunyang@google.com>
    Auto-Submit: Junyang Shao <shaojunyang@google.com>
    Reviewed-by: Michael Knyszek <mknyszek@google.com>
    cuonglm authored and JunyangShao committed Jan 7, 2026
    Configuration menu
    Copy the full SHA
    14f50f6 View commit details
    Browse the repository at this point in the history
  2. [release-branch.go1.25] Revert "errors: optimize errors.Join for sing…

    …le unwrappable errors"
    
    This reverts CL 635115.
    
    Reason for revert: The new behavior does not match the function documentation.
    
    For #76961
    Fixes #76973
    
    Change-Id: If2450aa4efba28c7a12887a5b306c231a836e740
    Reviewed-on: https://go-review.googlesource.com/c/go/+/731981
    Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
    Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
    Auto-Submit: Damien Neil <dneil@google.com>
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    (cherry picked from commit 1b3db48)
    Reviewed-on: https://go-review.googlesource.com/c/go/+/734520
    Reviewed-by: Junyang Shao <shaojunyang@google.com>
    neild authored and JunyangShao committed Jan 7, 2026
    Configuration menu
    Copy the full SHA
    ddcf27f View commit details
    Browse the repository at this point in the history
  3. [release-branch.go1.25] crypto/tls: reject trailing messages after cl…

    …ient/server hello
    
    For TLS 1.3, after procesesing the server/client hello, if there isn't a
    CCS message, reject the trailing messages which were appended to the
    hello messages. This prevents an on-path attacker from injecting
    plaintext messages into the handshake.
    
    Additionally, check that we don't have any buffered messages before we
    switch the read traffic secret regardless, since any buffered messages
    would have been under an old key which is no longer appropriate.
    
    We also invert the ordering of setting the read/write secrets so that if
    we fail when changing the read secret we send the alert using the
    correct write secret.
    
    Updates #76443
    Fixes #76855
    Fixes CVE-2025-61730
    
    Change-Id: If6ba8ad16f48d5cd5db5574824062ad4244a5b52
    Reviewed-on: https://go-review.googlesource.com/c/go/+/724120
    LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
    Reviewed-by: Michael Knyszek <mknyszek@google.com>
    Reviewed-by: Daniel McCarney <daniel@binaryparadox.net>
    Reviewed-by: Coia Prant <coiaprant@gmail.com>
    (cherry picked from commit 5046bdf)
    Reviewed-on: https://go-review.googlesource.com/c/go/+/731960
    Reviewed-by: Damien Neil <dneil@google.com>
    rolandshoemaker authored and JunyangShao committed Jan 7, 2026
    Configuration menu
    Copy the full SHA
    525dd85 View commit details
    Browse the repository at this point in the history

Commits on Jan 15, 2026

  1. [release-branch.go1.25] crypto/tls: don't copy auto-rotated session t…

    …icket keys in Config.Clone
    
    Once a tls.Config is used, it is not safe to mutate. We provide the
    Clone method in order to allow users to copy and modify a Config that
    is in use.
    
    If Config.SessionTicketKey is not populated, and if
    Config.SetSessionTicketKeys has not been called, we automatically
    populate and rotate session ticket keys. Clone was previously copying
    these keys into the new Config, meaning that two Configs could share
    the same auto-rotated session ticket keys. This could allow sessions to
    be resumed across different Configs, which may have completely different
    configurations.
    
    This change updates Clone to not copy the auto-rotated session ticket
    keys.
    
    Additionally, when resuming a session, check that not just that the leaf
    certificate is unexpired, but that the entire certificate chain is still
    unexpired.
    
    Fixes #77113
    Fixes CVE-2025-68121
    
    Change-Id: I011df7329de83068d11b3f0c793763692d018a98
    Reviewed-on: https://go-internal-review.googlesource.com/c/go/+/3300
    Reviewed-by: Damien Neil <dneil@google.com>
    Reviewed-by: Nicholas Husin <husin@google.com>
    Reviewed-on: https://go-internal-review.googlesource.com/c/go/+/3321
    Reviewed-on: https://go-review.googlesource.com/c/go/+/736720
    Auto-Submit: Michael Pratt <mpratt@google.com>
    TryBot-Bypass: Michael Pratt <mpratt@google.com>
    Reviewed-by: Junyang Shao <shaojunyang@google.com>
    rolandshoemaker authored and gopherbot committed Jan 15, 2026
    Configuration menu
    Copy the full SHA
    4be3852 View commit details
    Browse the repository at this point in the history
  2. [release-branch.go1.25] cmd/go: update VCS commands to use safer flag…

    …/argument syntax
    
    In various situations, the toolchain invokes VCS commands. Some of these
    commands take arbitrary input, either provided by users or fetched from
    external sources. To prevent potential command injection vulnerabilities
    or misinterpretation of arguments as flags, this change updates the VCS
    commands to use various techniques to separate flags from positional
    arguments, and to directly associate flags with their values.
    
    Additionally, we update the environment variable for Mercurial to use
    `HGPLAIN=+strictflags`, which is the more explicit way to disable user
    configurations (intended or otherwise) that might interfere with command
    execution.
    
    We also now disallow version strings from being prefixed with '-' or
    '/', as doing so opens us up to making the same mistake again in the
    future. As far as we know there are currently ~0 public modules affected
    by this.
    
    While I was working on cmd/go/internal/vcs, I also noticed that a
    significant portion of the commands being implemented were dead code.
    In order to reduce the maintenance burden and surface area for potential
    issues, I removed the dead code for unused commands.
    
    We should probably follow up with a more structured change to make it
    harder to accidentally re-introduce these issues in the future, but for
    now this addresses the issue at hand.
    
    Thanks to splitline (@splitline) from DEVCORE Research Team for
    reporting this issue.
    
    Fixes CVE-2025-68119
    Fixes #77099
    
    Change-Id: I9d9f4ee05b95be49fe14edf71a1b8e6c0784378e
    Reviewed-on: https://go-internal-review.googlesource.com/c/go/+/3260
    Reviewed-by: Damien Neil <dneil@google.com>
    Reviewed-by: Nicholas Husin <husin@google.com>
    Reviewed-on: https://go-internal-review.googlesource.com/c/go/+/3342
    Reviewed-by: Michael Matloob <matloob@google.com>
    Reviewed-on: https://go-review.googlesource.com/c/go/+/736721
    Reviewed-by: Junyang Shao <shaojunyang@google.com>
    Auto-Submit: Michael Pratt <mpratt@google.com>
    TryBot-Bypass: Michael Pratt <mpratt@google.com>
    rolandshoemaker authored and gopherbot committed Jan 15, 2026
    Configuration menu
    Copy the full SHA
    082365a View commit details
    Browse the repository at this point in the history
  3. [release-branch.go1.25] cmd/go/internal/work: sanitize flags before i…

    …nvoking 'pkg-config'
    
    The addition of CgoPkgConfig allowed execution with flags not
    matching the safelist. In order to prevent potential arbitrary
    code execution at build time, ensure that flags are validated
    prior to invoking the 'pkg-config' binary.
    
    Thank you to RyotaK (https://ryotak.net) of GMO Flatt Security Inc.
    for reporting this issue.
    
    Fixes CVE-2025-61731
    Fixes #77100
    
    Change-Id: Ic51b41f1f7e697ab98c9c32c6fae35f217f7f364
    Reviewed-on: https://go-internal-review.googlesource.com/c/go/+/3240
    Reviewed-by: Nicholas Husin <husin@google.com>
    Reviewed-by: Damien Neil <dneil@google.com>
    Reviewed-on: https://go-internal-review.googlesource.com/c/go/+/3343
    Reviewed-by: Neal Patel <nealpatel@google.com>
    Reviewed-on: https://go-review.googlesource.com/c/go/+/736722
    TryBot-Bypass: Michael Pratt <mpratt@google.com>
    Auto-Submit: Michael Pratt <mpratt@google.com>
    Reviewed-by: Junyang Shao <shaojunyang@google.com>
    thatnealpatel authored and gopherbot committed Jan 15, 2026
    Configuration menu
    Copy the full SHA
    2526187 View commit details
    Browse the repository at this point in the history
  4. [release-branch.go1.25] net/url: add urlmaxqueryparams GODEBUG to lim…

    …it the number of query parameters
    
    net/url does not currently limit the number of query parameters parsed by
    url.ParseQuery or URL.Query.
    
    When parsing a application/x-www-form-urlencoded form,
    net/http.Request.ParseForm will parse up to 10 MB of query parameters.
    An input consisting of a large number of small, unique parameters can
    cause excessive memory consumption.
    
    We now limit the number of query parameters parsed to 10000 by default.
    The limit can be adjusted by setting GODEBUG=urlmaxqueryparams=<n>.
    Setting urlmaxqueryparams to 0 disables the limit.
    
    Thanks to jub0bs for reporting this issue.
    
    Fixes #77101
    Fixes CVE-2025-61726
    
    Change-Id: Iee3374c7ee2d8586dbf158536d3ade424203ff66
    Reviewed-on: https://go-internal-review.googlesource.com/c/go/+/3020
    Reviewed-by: Nicholas Husin <husin@google.com>
    Reviewed-by: Neal Patel <nealpatel@google.com>
    Reviewed-on: https://go-internal-review.googlesource.com/c/go/+/3325
    Reviewed-by: Roland Shoemaker <bracewell@google.com>
    Reviewed-on: https://go-review.googlesource.com/c/go/+/736723
    Reviewed-by: Junyang Shao <shaojunyang@google.com>
    TryBot-Bypass: Michael Pratt <mpratt@google.com>
    Auto-Submit: Michael Pratt <mpratt@google.com>
    neild authored and gopherbot committed Jan 15, 2026
    Configuration menu
    Copy the full SHA
    afa9b66 View commit details
    Browse the repository at this point in the history
  5. [release-branch.go1.25] archive/zip: reduce CPU usage in index constr…

    …uction
    
    Constructing the zip index (which is done once when first opening
    a file in an archive) can consume large amounts of CPU when
    processing deeply-nested directory paths.
    
    Switch to a less inefficient algorithm.
    
    Thanks to Jakub Ciolek for reporting this issue.
    
    	goos: darwin
    	goarch: arm64
    	pkg: archive/zip
    	cpu: Apple M4 Pro
    	                          │  /tmp/bench.0  │            /tmp/bench.1            │
    	                          │     sec/op     │   sec/op     vs base               │
    	ReaderOneDeepDir-14         25983.62m ± 2%   46.01m ± 2%  -99.82% (p=0.000 n=8)
    	ReaderManyDeepDirs-14          16.221 ± 1%    2.763 ± 6%  -82.96% (p=0.000 n=8)
    	ReaderManyShallowFiles-14      130.3m ± 1%   128.8m ± 2%   -1.20% (p=0.003 n=8)
    	geomean                         3.801        253.9m       -93.32%
    
    Fixes #77102
    Fixes CVE-2025-61728
    
    Change-Id: I2c9c864be01b2a2769eb67fbab1b250aeb8f6c42
    Reviewed-on: https://go-internal-review.googlesource.com/c/go/+/3060
    Reviewed-by: Nicholas Husin <husin@google.com>
    Reviewed-by: Neal Patel <nealpatel@google.com>
    Reviewed-on: https://go-internal-review.googlesource.com/c/go/+/3327
    Reviewed-by: Damien Neil <dneil@google.com>
    Reviewed-on: https://go-review.googlesource.com/c/go/+/736724
    TryBot-Bypass: Michael Pratt <mpratt@google.com>
    Reviewed-by: Junyang Shao <shaojunyang@google.com>
    Auto-Submit: Michael Pratt <mpratt@google.com>
    neild authored and gopherbot committed Jan 15, 2026
    Configuration menu
    Copy the full SHA
    9d497df View commit details
    Browse the repository at this point in the history
  6. [release-branch.go1.25] go1.25.6

    Change-Id: Ib93e4136188fce36867537b30977a03885b8b14f
    Reviewed-on: https://go-review.googlesource.com/c/go/+/736761
    Reviewed-by: Michael Pratt <mpratt@google.com>
    Auto-Submit: Gopher Robot <gobot@golang.org>
    Reviewed-by: Junyang Shao <shaojunyang@google.com>
    TryBot-Bypass: Gopher Robot <gobot@golang.org>
    gopherbot committed Jan 15, 2026
    Configuration menu
    Copy the full SHA
    69801b2 View commit details
    Browse the repository at this point in the history
Loading