[security] Go 1.21.4 and Go 1.20.11 are released

Skip to first unread message


Nov 7, 2023, 1:07:54 PM11/7/23
to golan...@googlegroups.com

Hello gophers,

We have just released Go versions 1.21.4 and 1.20.11, minor point releases.

These minor releases include 2 security fixes following the security policy:

  • path/filepath: recognize \??\ as a Root Local Device path prefix.

    On Windows, a path beginning with \??\ is a Root Local Device path equivalent
    to a path beginning with \\?\. Paths with a \??\ prefix may be used to
    access arbitrary locations on the system. For example, the path \??\c:\x
    is equivalent to the more common path c:\x.

    The filepath package did not recognize paths with a \??\ prefix as special.

    Clean could convert a rooted path such as \a\..\??\b into
    the root local device path \??\b. It will now convert this
    path into .\??\b.

    IsAbs did not report paths beginning with \??\ as absolute.
    It now does so.

    VolumeName now reports the \??\ prefix as a volume name.

    Join(`\`, `??`, `b`) could convert a seemingly innocent
    sequence of path elements into the root local device path
    \??\b. It will now convert this to \.\??\b.

    This is CVE-2023-45283 and https://go.dev/issue/63713.

  • path/filepath: recognize device names with trailing spaces and superscripts

    The IsLocal function did not correctly detect reserved names in some cases:

    • reserved names followed by spaces, such as "COM1 ".
    • "COM" or "LPT" followed by a superscript 1, 2, or 3.

    IsLocal now correctly reports these names as non-local.

    This is CVE-2023-45284 and https://go.dev/issue/63713.

View the release notes for more information:

You can download binary and source distributions from the Go website:

To compile from source using a Git clone, update to the release with
git checkout go1.21.4 and build as usual.

Thanks to everyone who contributed to the releases.

Heschi and Cherry for the Go team

Reply all
Reply to author
0 new messages