漏洞关键信息 漏洞概述 类型: Server-Side Request Forgery (SSRF) Protection Bypass via HTTP Redirect 严重性: High (7.5/10) CVE ID: CVE-2025-68616 受影响版本: < 67.0 修复版本: None 漏洞描述 总结: - WeasyPrint 的 存在一个SSRF保护绕过漏洞,即使开发者实现了自定义的 来阻止对内部网络资源(如localhost服务或云元数据端点)的访问,该漏洞仍允许攻击者访问这些资源。 - 漏洞存在原因是底层的 库会自动跟随HTTP重定向,而不会重新验证新目标地址是否符合开发者的安全策略。 详细信息: - WeasyPrint允许开发者定义自定义的 函数来验证或清理URL,但底层实现使用了Python标准库 。 - 该库默认会跟随HTTP重定向(如301, 302, 307等状态码),而不会将控制权交还给开发者的验证逻辑,从而绕过安全检查。 - 这种行为会导致时间检查到时间使用 (TOCTOU) 漏洞,攻击者可提供一个通过开发者白名单/黑名单检查的URL,但立即重定向到被阻止的内部资源。 证明概念 (PoC) 步骤: 1. : 模拟一个内部服务,端口5000,在 路径下返回敏感数据。 2. : 模拟外部重定向服务器,端口1337,将请求重定向到被阻止的hostname(如 )。 3. : 模拟带有安全过滤器的应用程序,该过滤器本意是阻止对 的访问。通过构造 请求利用漏洞访问 。 4. : 检查构建的PDF中的嵌入文件是否包含敏感数据。 影响 内部网络侦察: 攻击者可以绕过防火墙或白名单扫描内部服务。 云元数据窃取: 在云环境中,攻击者可重定向请求到元数据服务,窃取实例凭证并提升权限。 安全控制绕过: 使 的安全验证逻辑对复杂攻击无效,给开发者造成虚假的安全感。