文章总结: 知名npm包md-to-pdf被发现存在CVSS10.0分的严重漏洞CVE-2025-65108,攻击者可通过构造恶意Markdown前端元数据实现任意JavaScript代码执行。该漏洞影响5.2.5之前的所有版本,建议用户立即升级至5.2.5或更高版本以修复此安全风险。任何使用该工具处理不可信Markdown内容的应用程序、构建系统或云服务均面临严重风险。
综合评分: 85
文章分类: 漏洞分析,漏洞预警,WEB安全,应用安全
知名npm包Markdown to PDF曝CVSS 10分漏洞,可通过元数据实现JS注入
FreeBuf
2025年11月24日 18:31
上海
近日,广泛使用的npm包md-to-pdf (Markdown to PDF)被披露存在一个严重安全漏洞( CVE-2025-65108 )。该npm包每周下载量逾 4.7 万次,用于将 Markdown 文档转换为 PDF 文件。此漏洞的CVSS评分为最高级别的 10.0 分,攻击者可通过构造恶意的 Markdown 前端元数据(front-matter),在目标系统上实现 任意 JavaScript 代码执行。
任何使用该工具处理不可信 Markdown 内容的应用程序、构建系统或云服务均面临严重风险。
Part01
漏洞成因与攻击原理
根据安全公告,当Markdown前置元数据块包含JavaScript分隔符时,会触发gray-matter库中的JS引擎在Markdown转PDF转换进程中执行任意代码。若用户提交的Markdown数据通过md-to-pdf处理且前置元数据含恶意JS代码,转换进程将直接执行该代码。
该漏洞源于md-to-pdf包在解析Markdown的YAML/JSON前置元数据块时,调用的gray-matter库存在可选JavaScript评估模式。该模式默认关闭,但当遇到---js或---javascript等特定分隔符时会自动激活。攻击者只需在Markdown文件前置元数据中嵌入恶意JavaScript,即可将普通文档上传操作升级为完整的系统入侵。
Part02
PoC示例
通告中提供了一个清晰且极具危害性的概念验证(PoC)代码,展示了如何利用该漏洞执行任意操作系统命令:
const { mdToPdf } = require('md-to-pdf');
var payload = '---javascript\n((require("child_process")).execSync("calc.exe"))\n---RCE';
(async () => {await mdToPdf({ content: payload }, { dest: './output.pdf'});})();
上述载荷通过前端元数据注入 JavaScript,调用 Node.js 的 child_process 模块执行系统命令(示例中为启动 Windows 计算器 calc.exe)。
这意味着:这意味着任何将Markdown转换为PDF的服务器、CI/CD流水线或桌面工具,仅需打开恶意Markdown文件即可被利用。
Part03
影响范围与修复建议
- 受影响版本:md-to-pdf 5.2.5 之前的所有版本
- 修复措施:请用户立即升级至 5.2.5 或更高版本
参考来源:
Critical Markdown to PDF Flaw (CVE-2025-65108, CVSS 10.0) Allows RCE via JS Injection in Markdown Front-Matter
#
#
#
推荐阅读
#
电台讨论
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:FreeBuf 《知名npm包Markdown to PDF曝CVSS 10分漏洞,可通过元数据实现JS注入》