GHSA-w23q-4hw3-2pp6

Suggest an improvement
Source
https://github.com/advisories/GHSA-w23q-4hw3-2pp6
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2023/09/GHSA-w23q-4hw3-2pp6/GHSA-w23q-4hw3-2pp6.json
JSON Data
https://api.test.osv.dev/v1/vulns/GHSA-w23q-4hw3-2pp6
Aliases
Related
Published
2023-09-06T18:43:13Z
Modified
2024-09-11T06:13:39.038708Z
Severity
  • 8.8 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H CVSS Calculator
Summary
Minio vulnerable to Privilege Escalation on Windows via Path separator manipulation
Details

Impact

All users on Windows are impacted. MinIO fails to filter the \ character, which allows for arbitrary object placement across buckets. As a result, a user with low privileges, such as an access key, service account, or STS credential, which only has permission to PutObject in a specific bucket, can create an admin user.

Patches

There are two patches that fix this problem comprehensively

commit b3c54ec81e0a06392abfb3a1ffcdc80c6fbf6ebc
Author: Harshavardhana <harsha@minio.io>
Date:   Mon Mar 20 13:16:00 2023 -0700

    reject object names with '\' on windows (#16856)
commit 8d6558b23649f613414c8527b58973fbdfa4d1b8
Author: Harshavardhana <harsha@minio.io>
Date:   Mon Mar 20 00:35:25 2023 -0700

    fix: convert '\' to '/' on windows (#16852)

Workarounds

There are no known workarounds

References

The vulnerable code:

// minio/cmd/generic-handlers.go
// Check if the incoming path has bad path components,
// such as ".." and "."
// SlashSeparator -> /
// dotdotComponent -> ..
// dotComponent -> .
func hasBadPathComponent(path string) bool {
  path = strings.TrimSpace(path)
  for _, p := range strings.Split(path, SlashSeparator) {
    switch strings.TrimSpace(p) {
    case dotdotComponent:
      return true
    case dotComponent:
      return true
    }
  }
  return false
}
Database specific
{
    "nvd_published_at": "2023-03-22T21:15:00Z",
    "cwe_ids": [
        "CWE-668"
    ],
    "severity": "HIGH",
    "github_reviewed": true,
    "github_reviewed_at": "2023-09-06T18:43:13Z"
}
References

Affected packages

Go / github.com/minio/minio

Package

Name
github.com/minio/minio
View open source insights on deps.dev
Purl
pkg:golang/github.com/minio/minio

Affected ranges

Type
SEMVER
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
0.0.0-202303200735