CVE-2025-66452: CWE-79: 网页生成期间输入未正确中和(跨站脚本)于 danny-avila LibreChat
严重性:中 类型:漏洞 CVE:CVE-2025-66452
描述
LibreChat 是一个具备附加功能的 ChatGPT 克隆项目。在 0.8.0 及更低版本中,缺少对 JSON 解析错误的处理程序;来自 express.json() 的 SyntaxError 在错误信息中包含了用户输入,这些信息会被反映在响应中。用户输入(包括 HTML/JavaScript)可能在错误响应中暴露,如果未严格强制执行 Content-Type,则会存在 XSS 风险。截至发布时,此问题尚无修复方案。
技术分析
CVE-2025-66452 是在 LibreChat 项目中发现的一个跨站脚本漏洞,该项目是一个具备附加功能的 ChatGPT 克隆,影响版本为 0.8.1 及更早。根本原因在于 express.json() 中间件中缺乏对 JSON 解析错误的正确处理。当发送格式错误的 JSON 输入时,express.json() 会抛出一个 SyntaxError,该错误信息包含了原始用户输入。LibreChat 在未经净化或转义的情况下,将这些错误信息逐字反映在 HTTP 响应中。如果服务器未严格强制执行 Content-Type 标头以防止浏览器将响应解释为 HTML,攻击者就可以在 JSON 有效载荷中注入恶意的 HTML 或 JavaScript 代码。这导致了反射型 XSS 漏洞(CWE-79)。该漏洞不需要身份验证,可以由任何向服务器发送精心构造的 JSON 数据的用户触发。CVSS 4.0 基础评分为 5.3(中危),反映了网络攻击媒介、低复杂性、发起攻击无需特权或用户交互,但在受害者浏览器中触发有效载荷需要用户交互。该漏洞通过允许在易受攻击的 Web 应用程序上下文中执行脚本,影响了机密性和完整性,可能导致会话劫持、凭据窃取或其他恶意行为。截至发布时,尚无补丁或修复程序可用,且未报告野外存在已知的利用。此问题凸显了在 Web 应用程序中进行适当的错误处理和严格的 Content-Type 强制实施对于防止注入攻击的重要性。
潜在影响
对于使用 LibreChat 0.8.1 或更早版本的欧洲组织,此漏洞可能导致反射型 XSS 攻击被利用,允许攻击者在用户的浏览器中执行任意脚本。这可能导致会话劫持、敏感信息窃取、以用户名义执行未经授权的操作以及潜在的恶意软件传播。对于那些将 LibreChat 部署为客户交互或内部通信工具(可能涉及敏感或机密信息交换)的组织,影响尤其重大。如果个人数据遭到泄露,该漏洞可能破坏用户信任并导致 GDPR 下的合规问题。此外,如果 LibreChat 集成到更大的平台或工作流程中,XSS 漏洞可能成为更复杂攻击的入口点。由于目前尚无修复方案,组织在应用缓解措施或发布更新之前面临更高的风险。
缓解建议
欧洲组织应实施以下具体缓解措施:
- 在所有来自 LibreChat 的 HTTP 响应上严格强制执行
Content-Type标头,确保错误消息被视为纯文本而非 HTML,从而防止脚本执行。 - 部署带有规则集的 Web 应用防火墙,以检测并阻止针对 LibreChat 端点的、包含可疑 JSON 或脚本内容的恶意有效载荷。
- 在应用程序或代理级别实施输入验证和净化,以检测格式错误的 JSON 并在请求到达 LibreChat 之前拒绝它们。
- 在 Express.js 服务器中配置错误处理中间件,以捕获 JSON 解析错误并返回不包含用户输入的通用错误消息。
- 通过身份验证和网络隔离将 LibreChat 部署隔离,以限制暴露面。
- 监控日志中是否存在重复的 JSON 解析错误或表明利用尝试的可疑请求。
- 与 LibreChat 项目或社区保持联系,跟踪补丁发布情况,并在可用时规划及时更新。
- 教育用户点击不受信任的链接或与可能利用 XSS 的可疑聊天内容交互的风险。
受影响国家
德国、法国、英国、荷兰、瑞典、意大利、西班牙、波兰