关键信息 漏洞描述 漏洞类型: XSS (跨站脚本攻击) 原因: 通过重叠模式(多字符替换)绕过清理器 受影响的包: @mathharo/promptcraft-sanitize 受影响版本: >=0.1.0 修复版本: 无 影响 CVSS v3 基础指标: - 严重性: 高 (8.2/10) - 攻击向量: 网络 - 攻击复杂度: 低 - 特权要求: 无 - 用户交互: 必须 - 范围: 变更 - 机密性影响: 高 - 完整性影响: 低 - 可用性影响: 无 CVE ID: CVE-2025-58353 弱点: CWE-20, CWE-80, CWE-116, CWE-184 影响详情 摘要: src/utils/validation.ts 使用正则表达式黑名单(如 replace(/javascript/gi, '')、replace(/onw+s=/gi, '') 和 replace(/data:text/html/gi, '') 进行用户输入清理。由于这些是多字符令牌,每次替换只应用一次,移除一个实例可能会因重叠而创建新的危险令牌。"清理"后的值可能仍包含可执行的有效载荷;当用于 href/src 或注入到 DOM 中时,这会导致 XSS。 修复建议 首选: 使用经过良好测试的清理器(例如,DOMPurify 在浏览器中或 sanitize-html 在 Node.js 中)。 如果保留正则表达式: 重复应用替换直到字符串稳定(或切换到字符级过滤)。最小安全模式示例代码已提供。 其他建议**: - 不要将不受信任的字符串传递给 dangerouslySetInnerHTML。 - 在构建 href/src 值时,优先使用白名单安全 URL。