CVE-2023-45283

Aliases:CGA-25c3-cp9r-6wrxBIT-golang-2023-45283CGA-qqfg-vr55-6p99CGA-qqg8-j32g-67m9GHSA-vvjp-q62m-2vphGO-2023-2185
Modified
Published: 09 Nov 2023, 16:30
Last modified:13 Feb 2025, 17:13

Vulnerability Summary

Overall Risk (default)
medium
30/100
CVSS Score
7.5 HIGH
v3.1 (nvd)
EPSS Score
0.32% LOW
0% probability +0.24%
KEV
Not listed
Ransomware
No reports
Public exploits
None found
Dark Web
Not detected

Timeline

09 Nov 2023, 16:30
Published
Vulnerability first disclosed
13 Feb 2025, 17:13
Last Modified
Vulnerability information updated

Description

The filepath package does not recognize paths with a \??\ prefix as special. 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. Before fix, Clean could convert a rooted path such as \a\..\??\b into the root local device path \??\b. Clean will now convert this to .\??\b. Similarly, Join(\, ??, b) could convert a seemingly innocent sequence of path elements into the root local device path \??\b. Join will now convert this to \.\??\b. In addition, with fix, IsAbs now correctly reports paths beginning with \??\ as absolute, and VolumeName correctly reports the \??\ prefix as a volume name. UPDATE: Go 1.20.11 and Go 1.21.4 inadvertently changed the definition of the volume name in Windows paths starting with \?, resulting in filepath.Clean(\?\c:) returning \?\c: rather than \?\c:\ (among other effects). The previous behavior has been restored.

CVSS Metrics

  • v3.1HIGHScore: 7.5CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

EPSS Trends

Current EPSS score: 0.32% Percentile: 55%

Techniques & Countermeasures

  • CWE-22Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

    The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.

Affected Systems

  • chainguardcluster-autoscaler-1.26

    < 0

  • chainguardcluster-autoscaler-1.26-compat

    < 0

  • chainguardcluster-autoscaler-1.27

    < 0

  • chainguardcluster-autoscaler-1.27-compat

    < 0

  • chainguardcluster-autoscaler-1.28

    < 0

  • chainguardcluster-autoscaler-1.28-compat

    < 0

  • wolficluster-autoscaler-1.26

    < 0

  • wolficluster-autoscaler-1.26-compat

    < 0

  • wolficluster-autoscaler-1.27

    < 0

  • wolficluster-autoscaler-1.27-compat

    < 0

  • wolficluster-autoscaler-1.28

    < 0

  • wolficluster-autoscaler-1.28-compat

    < 0

  • go standard libraryinternal/safefilepath

    < 1.20.11 | ≥ 1.21.0-0, < 1.21.4

  • go standard librarypath/filepath

    < 1.20.11 | ≥ 1.21.0-0, < 1.21.4 | ≥ 1.20.11, < 1.20.12 | ≥ 1.21.4, < 1.21.5

  • golanggo

    < 1.20.11 | ≥ 1.21.0-0, < 1.21.4

  • Gostdlib

    ≥ 1.21.0-0, < 1.21.4 | ≥ 1.21.4, < 1.21.5

References (9)