CVE-2026-104477 Showdown 跨站脚本漏洞
影响攻击者可注入并执行任意脚本,窃取会话或篡改页面
Showdown 是一款 JavaScript 实现的 Markdown 转 HTML 库。其 makehtml 的链接与图片子解析器在将目标 URL 写入 href、src 属性时未转义双引号,导致属性可被闭合注入。攻击者构造含双引号加 onerror/onmouseover 等事件处理器的 Markdown 链接或图片,受害者查看渲染结果时脚本即被执行。
影响范围
Showdown 2.1.0 及之前版本(through 2.1.0)受影响,具体修复版本暂无公开信息。
漏洞详情
漏洞类型为跨站脚本(XSS),成因是链接与图片子解析器未对目标 URL 中的双引号做 HTML 属性转义。攻击者可在 Markdown 链接或图片的 URL 中插入双引号并拼接 onerror、onmouseover 等事件属性,从而突破 href/src 属性边界注入脚本。当渲染后的 HTML 被浏览器解析时,注入的事件处理器触发执行任意 JavaScript。
利用条件与风险
利用前提是应用使用受影响版本渲染不可信 Markdown 内容且未做额外过滤;实战中可用于窃取 Cookie、会话劫持或钓鱼,CVSS 6.1 属中危。
修复建议
建议升级到官方修复版本(暂无公开信息),或对渲染输出进行 HTML 属性转义与内容净化;临时缓解可对 Markdown 输入做严格过滤或使用可信渲染环境。
Showdown through 2.1.0 contains a cross-site scripting vulnerability in the makehtml link and image subparsers, which fail to escape double quotes in destination URLs placed into href and src attributes. Attackers can craft markdown links or images containing a double quote followed by onerror or onmouseover handlers to execute script when victims view rendered HTML.