EN

【漏洞预警报告】MinIO 服务端请求伪造漏洞

发布时间:2021-03-12
浏览量: 9150

漏洞简述



时间2021年02月02日

发现MinIO组件存在服务端伪造请求漏洞的信息,漏洞编号:CVE-2021-21287。

程序详情

MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。

MinIO是一个轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。



风险等级



威胁等级:高

影响范围:广泛



漏洞详情


该漏洞是由于MinIO组件中LoginSTS接口逻辑设计不当,导致服务端请求伪造漏洞。攻击者通过精心构造URL来修改对此功能的调用。在服务器端请求伪造攻击中,攻击者可以利用服务器上的功能来读取或更新内部资源,可能结合内网其他服务进行执行任意命令。



影响版本

MinIO < RELEASE.2021-01-30T00-20-58Z

 修复建议

升级组件到安全版本

github链接https://github.com/minio/minio

安全版本

MinIO >= RELEASE.2021-01-30T00-20-58Z



漏洞复现分析


漏洞分析

修复记录提交日志链接:

https://github.com/minio/minio/commit/eb6871ecd960d570f70698877209e6db181bf276#diff-2b3f29fdeadc144f19a2d0e02e076608e0dd58cb2cce21b1b974bfc5bd21304b

从修复记录中可以看出,修复后移除了可控参数host的相关代码。

1615537170.png

MinIO中的LoginSTS接口用于代理AWS STS登录请求,将发送到JsonRPC的请求转化成STS的方式,再转发给本地的9000端口。

未修复前,因为请求头是用户可控的,所以这里可以构造任意的Host,进而构造一个SSRF漏洞。


漏洞复现


0x00 环境部署

使用docker-compose 部署

1615537191.png

访问http://you-ip:9000到登录页面

1615537210.png

0x01 刷新页面,找到登录页面包含的JsonRPC请求

1615537231.png

0x02 先使用python3启动一个http服务,用于检测是否有回调过来

1615537244.png

0x03 修改method为 web.LoginSTS,指定host参数

1615537258.png

0x04 点击Go之后可以看到已经有访问记录了,证明存在SSRF漏洞

1615537274.png

热点内容

开始试用任子行产品
申请试用

20年公安服务经验

7*24小时应急响应中心

自主知识产权的产品装备

专家级安全服务团队

网络空间数据治理专家

荣获国家科学技术二等奖

置顶
电话

400-700-1218

官方热线电话

咨询
留言
二维码
微信公众号
公司微博