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

相关推荐
励志的小陈6 小时前
贪吃蛇(C语言实现,API)
c语言·开发语言
Makoto_Kimur6 小时前
java开发面试-AI Coding速成
java·开发语言
laowangpython6 小时前
Gurobi求解器Matlab安装配置教程
开发语言·其他·matlab
wengqidaifeng6 小时前
python启航:1.基础语法知识
开发语言·python
观北海6 小时前
Windows 平台 Python 极简 ORB-SLAM3 Demo,从零实现实时视觉定位
开发语言·python·动态规划
猫3287 小时前
v-cloak
前端·javascript·vue.js
AC赳赳老秦7 小时前
OpenClaw二次开发实战:编写专属办公自动化技能,适配个性化需求
linux·javascript·人工智能·python·django·测试用例·openclaw
旷世奇才李先生7 小时前
Vue 3\+Vite\+Pinia实战:企业级前端项目架构设计
前端·javascript·vue.js
Ulyanov8 小时前
《PySide6 GUI开发指南:QML核心与实践》 第二篇:QML语法精要——构建声明式UI的基础
java·开发语言·javascript·python·ui·gui·雷达电子对抗系统仿真
码界筑梦坊8 小时前
357-基于Java的大型商场应急预案管理系统
java·开发语言·毕业设计·知识分享