公司新闻
漏洞简述
发现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.com/minio/minio/commit/eb6871ecd960d570f70698877209e6db181bf276#diff-2b3f29fdeadc144f19a2d0e02e076608e0dd58cb2cce21b1b974bfc5bd21304b
从修复记录中可以看出,修复后移除了可控参数host的相关代码。
MinIO中的LoginSTS接口用于代理AWS STS登录请求,将发送到JsonRPC的请求转化成STS的方式,再转发给本地的9000端口。
未修复前,因为请求头是用户可控的,所以这里可以构造任意的Host,进而构造一个SSRF漏洞。
漏洞复现
0x00 环境部署
使用docker-compose 部署
访问//you-ip:9000到登录页面