高危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以下版本均受影响,用户应立即升级至安全版本。

相关推荐
智慧地球(AI·Earth)9 分钟前
Codex配置问题解析:wire_api格式不匹配导致的“Reconnecting...”循环
开发语言·人工智能·vscode·codex·claude code
Ralph_Y16 分钟前
C++虚继承
开发语言·c++
杨章隐17 分钟前
Java 解析 CDR 文件并计算图形面积的完整方案(支持 MultipartFile / 网络文件)@杨宁山
java·开发语言
SmartRadio26 分钟前
进一步优化CH585M的低功耗模式
c语言·开发语言·单片机·嵌入式硬件·物联网
Renhao-Wan29 分钟前
Java 并发基石:AQS (AbstractQueuedSynchronizer)
java·开发语言
SweetCode39 分钟前
【无标题】
开发语言·c++·算法
shughui44 分钟前
Python基础面试题:语言定位+数据类型+核心操作+算法实战(含代码实例)
开发语言·python·算法
yyf198905251 小时前
Vue 框架相关中文文献
前端·javascript·vue.js
No0d1es1 小时前
2025年12月电子学会青少年软件编程Python六级等级考试真题试卷
开发语言·python·青少年编程·等级考试·电子学会
zlp19921 小时前
xxl-job java.sql.SQLException: interrupt问题排查(二)
java·开发语言