AI and data stack advisories

Severe, 6 weeks1496Projects326

1496 severe, 6 weeks · 326 projects

MinIOGHSA-2pxw-r47w-4p8c

Privilege Escalation on Linux/MacOS

MinIO

CVE-2023-28434 · Published Sep 5, 2023 · updated Oct 8, 2026

High8.8
Fix: upgrade to 0.0.0-202303200415 or later
GitHub advisory

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:

```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)...

Affected versions

PackageAffectedFixed in
github.com/minio/minio
Go
< 0.0.0-2023032004150.0.0-202303200415
Details and references

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

CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H/E:H
Severity from
GitHub (reviewed advisory)
Weakness
CWE-269
Also known as
CVE-2023-28434

More MinIO advisories

All MinIO