作者不对因使用本工具而导致的滥用或损害承担任何责任。 本研究仅用于教育和防御目的。
本仓库包含针对 CVE-2025-62168 的概念验证(PoC),这是影响 Squid Proxy 的一个信息泄露缺陷。 在某些配置下,Squid 可能会在其自动生成的错误页面中反射 HTTP 请求头,尤其是在 mailto: 诊断块内。
此行为可能暴露敏感令牌,例如:
该 PoC 演示了单个注入的请求头如何以未脱敏的形式出现在错误模板中,从而允许攻击者通过强制触发网络错误来检索泄露的令牌。
此漏洞源于 Squid 生成并返回错误页面的方式。当发生错误时,Squid 的响应可能无意中将敏感 HTTP 认证数据嵌入到通过 email_err_data 指令创建的管理员 mailto 链接中。
只要启用了 email_err_data(包括默认配置),系统就会受到影响;即使 Squid 未显式配置为使用 HTTP 认证,也可能发生泄露。
该问题被归类为:
这使得该缺陷尤为严重,因为泄露的凭据可能属于依赖 Squid 作为代理层的内部应用程序、后端服务或已认证客户端。
当 Squid 构建错误页面(例如 ERR_READ_ERROR)时,内部模板可能包含:
HTTP Request:
Header: VALUE
如果过滤失败,用户提供的请求头会被插入到用于诊断的 mailto: 超链接中。此 PoC 通过使用不存在的域名触发错误,并检查返回的 HTML 中是否存在未脱敏的数据。
该漏洞使攻击者能够绕过正常的浏览器安全控制,并提取受信任客户端使用的认证凭据。这包括属于内部 Web 应用程序或后端服务的令牌和会话数据,尤其是在 Squid 充当反向代理或负载均衡器的环境中。通过直接从 Squid 生成的错误页面中捕获这些信息,攻击者可以冒充合法用户、提升访问权限、在网络上横向移动,或入侵依赖 Squid 进行流量处理的后端系统。
mailto: 主体中(URL 编码)CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Score: 7.5 (High)
python3 cve-2025-62168.py --proxy http://127.0.0.1:3128
技术模式:
python3 cve-2025-62168.py --proxy http://127.0.0.1:3128 --verbose
该脚本执行以下操作:
mailto: 诊断块STEP 4 — Parsing mailto block...
X-Test-Leak: <JWT TOKEN>
STEP 5 — TOKEN LEAK CONFIRMED
<decoded token>
CVE-2025-62168/
│
├── LICENSE
├── README.md
├── cve-2025-62168.py
├── example.txt
├── payload.json
├── requirements.txt
└── token.txt
ERR_*)是否泄露元数据