高危Markdown转PDF漏洞,可通过Markdown前置元数据实现JS注入攻击(CVE-2025-65108,CVSS 10.0)

2025年11月24日,广受欢迎的npm包md-to-pdf(每周下载量超47,000次的命令行工具)曝出高危漏洞(CVE-2025-65108)。该漏洞获得CVSS满分10分评级,攻击者可通过恶意前置元数据解析执行任意JavaScript代码。任何使用该包处理不可信Markdown内容的应用程序、构建系统或云服务均面临严重风险。

漏洞原理分析

安全公告指出:"当Markdown前置元数据块包含JavaScript分隔符时,gray-matter库中的JS引擎会在Markdown转PDF过程中执行任意代码[...]如果将用户提供的Markdown内容输入md-to-pdf且前置元数据包含恶意JS,转换进程将执行该代码。"

漏洞根源在于md-to-pdf包使用gray-matter库解析Markdown中的YAML/JSON前置元数据块时存在缺陷。gray-matter包含一个通常禁用的可选JavaScript评估模式,但当出现---js或---javascript等特定分隔符时会自动激活。

攻击场景演示

攻击者可将恶意JavaScript嵌入Markdown文件的前置元数据,使简单的文档上传操作演变为完整的系统入侵。公告包含一个极具威胁性的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'});
})();

这意味着任何将Markdown转换为PDF的服务器、CI/CD流水线或桌面工具,只需打开恶意Markdown文件即可被攻陷。

影响范围与修复建议

5.2.5以下版本均受影响,用户应立即升级至安全版本。

相关推荐
qq_1777673712 小时前
React Native鸿蒙跨平台实现消息列表用于存储所有消息数据,筛选状态用于控制消息筛选结果
javascript·react native·react.js·ecmascript·harmonyos
RANCE_atttackkk12 小时前
Springboot+langchain4j的RAG检索增强生成
java·开发语言·spring boot·后端·spring·ai·ai编程
梵刹古音12 小时前
【C语言】 格式控制符与输入输出函数
c语言·开发语言·嵌入式
Acrelhuang12 小时前
工商业用电成本高?安科瑞液冷储能一体机一站式解供能难题-安科瑞黄安南
大数据·开发语言·人工智能·物联网·安全
hello 早上好12 小时前
03_JVM(Java Virtual Machine)的生命周期
java·开发语言·jvm
沐雪架构师12 小时前
LangChain 1.0 Agent开发实战指南
开发语言·javascript·langchain
tod11312 小时前
力扣高频 SQL 50 题阶段总结(四)
开发语言·数据库·sql·算法·leetcode
2501_9400078913 小时前
Flutter for OpenHarmony三国杀攻略App实战 - 战绩记录功能实现
开发语言·javascript·flutter
naruto_lnq13 小时前
C++中的桥接模式
开发语言·c++·算法
无限进步_13 小时前
面试题 02.02. 返回倒数第 k 个节点 - 题解与详细分析
c语言·开发语言·数据结构·git·链表·github·visual studio