Skip to content

GHSA-2pxw-r47w-4p8c CVE-2023-28434

Privilege Escalation on Linux/MacOS

High Known exploited Go
Severity
8.8 / 10
High · CVSS 3.1
Exploit chance (EPSS)
7.92%
Chance of exploitation in the next 30 days. Higher than 94.73% of scored vulnerabilities.
Known exploited
Yes
In CISA's catalog since Sep 19, 2023
Weakness
CWE-269 Improper Privilege Management
Fix
0.0.0-202303200415
Upgrade github.com/minio/minio to this version or later
Exploited in the wild. MinIO Security Feature Bypass Vulnerability (MinIO MinIO). Required action: Apply mitigations per vendor instructions or discontinue use of the product if mitigations are unavailable. Due for U.S. federal agencies by Oct 10, 2023.

Description

Impact

An attacker can use crafted requests to bypass metadata bucket name checking and put an object into any bucket while processing PostPolicyBucket. To carry out this attack, the attacker requires credentials with arn:aws:s3:::* permission, as well as enabled Console API access.

Patches

commit 67f4ba154a27a1b06e48bfabda38355a010dfca5
Author: Aditya Manthramurthy <donatello@users.noreply.github.com>
Date:   Sun Mar 19 21:15:20 2023 -0700

    fix: post policy request security bypass (#16849)

Workarounds

Browser API access must be enabled turning off MINIO_BROWSER=off allows for this workaround.

References

The vulnerable code:

// minio/cmd/generic-handlers.go
func setRequestValidityHandler(h http.Handler) http.Handler {
  return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    // ...
    // For all other requests reject access to reserved buckets
    bucketName, _ := request2BucketObjectName(r)
    if isMinioReservedBucket(bucketName) || isMinioMetaBucket(bucketName) {
      if !guessIsRPCReq(r) && !guessIsBrowserReq(r) && !guessIsHealthCheckReq(r) && !guessIsMetricsReq(r) && !isAdminReq(r) && !isKMSReq(r) {
        if ok {
          tc.FuncName = "handler.ValidRequest"
          tc.ResponseRecorder.LogErrBody = true
        }
        writeErrorResponse(r.Context(), w, errorCodes.ToAPIErr(ErrAllAccessDisabled), r.URL)
        return
      }
    }
    // ...

Affected versions

Go

PackageVulnerableFixed in
github.com/minio/minio
< 0.0.0-202303200415
0.0.0-202303200415
github.com/minio/minio
< 0.0.0-202303200415
0.0.0-202303200415

How to fix

Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.

github.com/minio/minio Go → 0.0.0-202303200415

go
go get github.com/minio/minio@v0.0.0-202303200415 && go mod tidy

Severity breakdown

CVSS 3.1 8.8

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H/E:H

Attack vector
Network
Attack complexity
Low
Privileges required
Low
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
Exploit maturity
H

Weakness

CWE-269: Improper Privilege Management

The product does not properly assign, modify, track, or check privileges for an actor, creating an unintended sphere of control for that actor.

How to prevent it
  • Architecture and Design, Operation: Very carefully manage the setting, management, and handling of privileges. Explicitly manage trust zones in the software.
  • Architecture and Design: Follow the principle of least privilege when assigning access rights to entities in a software system.
  • Architecture and Design: Consider following the principle of separation of privilege. Require multiple conditions to be met before permitting access to a system resource.

References

Timeline

  1. Published
  2. Added to CISA's Known Exploited Vulnerabilities catalog
  3. Remediation due for U.S. federal agencies
  4. Last updated by the source
  5. Latest EPSS score
AdvisorySeverityWhy it's related
GHSA-7hp6-4w63-5g45
LiteLLM: Privilege Escalation to Proxy Admin via Cross-Domain Reuse of the Salt Key
Critical Same weakness, CWE-269
GO-2026-6791
containerd CRI plugin: Checkpoint restore bypasses destination security context
High Same weakness, CWE-269
GHSA-pjr3-86v4-5p7w
Vikunja: Explicit lower-permission share on a sub-project is silently overridden by an inherited parent permission (broken access control / privilege-management regression in v2.6.0)
Medium Same weakness, CWE-269
GHSA-v3p6-34mc-hj7v
Vikunja: Scoped API token can mint unrestricted OAuth session credentials
High Same weakness, CWE-269
GHSA-4pvx-fwjj-8gpc
Ghost: Editors Could Promote Staff Users to Their Own Role
Medium Same weakness, CWE-269
CVE-2026-102490
Local privilege escalation in Zammad v1.5.0 to v7.2.2 installed via DEB or RPM package
High Known exploited Same weakness, CWE-269
GHSA-9qh4-3jw8-366w
Electron: <webview> can enable Node.js integration in Web Workers despite embedder restrictions
Critical Same weakness, CWE-269
GHSA-3w57-8xmc-8v26
AnyIO run_process/open_process ignores extra_groups and can retain parent supplementary groups
High Same weakness, CWE-269

Credits: RicterZ, donatello, harshavardhana

Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor