Miggo Logo

CVE-2025-32963:
Minio Operator uses Kubernetes apiserver audience for AssumeRoleWithWebIdentity STS

6.9

CVSS Score
4.0

Basic Information

EPSS Score
0.31005%
Published
4/21/2025
Updated
4/23/2025
KEV Status
No
Technology
TechnologyGo

Technical Details

CVSS Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Package NameEcosystemVulnerable VersionsFirst Patched Version
github.com/minio/operatorgo< 7.1.07.1.0

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability arises from the MinIO Operator not correctly specifying and verifying the 'audience' for Kubernetes Service Account tokens used in its STS AssumeRoleWithWebIdentity flow.

  1. The ValidateServiceAccountJWT function in pkg/controller/sts.go was responsible for preparing the TokenReview request. Prior to the patch (d586294), it did not set the spec.audiences field. This caused the Kubernetes API server to default the audience, typically to its own, which is not specific enough for the MinIO STS use case.
  2. The AssumeRoleWithWebIdentityHandler function in pkg/controller/sts_handlers.go, which processes the AssumeRoleWithWebIdentity request and uses the result of ValidateServiceAccountJWT, did not check the status.audiences field in the TokenReview response to ensure the token was intended for sts.min.io.

The patch d586294 addresses both issues: ValidateServiceAccountJWT was modified to include sts.min.io in spec.audiences of the TokenReview request, and AssumeRoleWithWebIdentityHandler was modified to explicitly check for sts.min.io in the status.audiences of the TokenReview response. Both functions were integral to the vulnerable process: one for not requesting the correct audience scope, and the other for not verifying the audience of the validated token.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

# Pr*v*nt tok*n l**k*** / privil*** *s**l*tion ## MinIO Op*r*tor STS: * Qui*k Ov*rvi*w MinIO Op*r*tor STS is * n*tiv* I*M *ut**nti**tion *or Ku**rn*t*s. MinIO Op*r*tor o***rs support *or [S**ur* Tok*ns](*ttps://min.io/*o*s/minio/linux/**v*lop*rs/s*

Reasoning

T** vuln*r**ility *ris*s *rom t** MinIO Op*r*tor not *orr**tly sp**i*yin* *n* v*ri*yin* t** '*u*i*n**' *or Ku**rn*t*s S*rvi** ***ount tok*ns us** in its STS `*ssum*Rol*Wit*W**I**ntity` *low. *. T** `V*li**t*S*rvi*****ountJWT` *un*tion in `pk*/*ontro