GitHub Advisoryadvisory · Go

GHSA-2pxw-r47w-4p8c Privilege Escalation on Linux/MacOS

HIGH Published 2023-09-05 Modified 2025-10-22 Official page ↗
Aliases
CVE-2023-28434
Ecosystem
Go
Packages
github.com/minio/minio
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H/E:H
Weaknesses
CWE-269
Reviewed
2023-09-05

Affected packages

• Go github.com/minio/minio: < 0.0.0-202303200415 → fixed in 0.0.0-202303200415

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 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: ```go // 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 } } // ... ```

Related

Alias · CVE (1)

  • CVE-2023-28434 Minio is a Multi-Cloud Object Storage framework. vulnerability

Weakness · CWE (1)

  • CWE-269 Improper Privilege Management weakness

References