知名npm包Markdown to PDF曝CVSS 10分漏洞,可通过元数据实现JS注入

近日,广泛使用的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

https://securityonline.info/critical-markdown-to-pdf-flaw-cve-2025-65108-cvss-10-0-allows-rce-via-js-injection-in-markdown-front-matter/


© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
相关推荐
  • 暂无相关文章
  • 评论 抢沙发

    请登录后发表评论

      暂无评论内容