IPBUF安全漏洞报告
English
CVE-2026-41680 CVSS 7.5 高危

CVE-2026-41680 Marked 拒绝服务漏洞

披露日期: 2026-04-24

漏洞信息

漏洞编号
CVE-2026-41680
漏洞类型
拒绝服务
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Marked

相关标签

DoS拒绝服务MarkedNode.jsCVE-2026-41680内存耗尽

漏洞概述

Marked是一个流行的Markdown解析器。在18.0.0至18.0.1版本中存在一个高危拒绝服务漏洞。攻击者无需认证,通过发送特定的3字节序列(制表符、垂直制表符和换行符),即可触发解析过程中的无限递归。这会导致无限制的内存分配,最终引发Node.js应用内存耗尽(OOM)而崩溃。该漏洞已在18.0.2版本中修复。

技术细节

该漏洞的根源在于Marked库在处理特定Markdown输入时的解析逻辑缺陷。具体而言,当解析器处理到由制表符(\x09)、垂直制表符(\x0b)和换行符(\n)组成的特定3字节序列时,会陷入无限递归调用状态。由于缺乏针对此类边界情况的深度限制或异常捕获机制,递归过程会持续进行,导致函数调用栈不断增长,并触发无限制的内存分配。在Node.js环境中,这种资源消耗会迅速达到V8引擎的内存上限,抛出内存溢出(OOM)错误并强制终止进程。攻击者无需任何身份认证或用户交互,只需通过网络发送包含该序列的恶意数据,即可远程致使目标服务不可用。

攻击链分析

STEP 1
信息收集
攻击者识别出目标Web应用使用了受影响版本的Marked库来解析Markdown内容。
STEP 2
构造载荷
攻击者构造包含特定字节序列(\x09\x0b\n)的恶意输入数据。
STEP 3
发送请求
攻击者通过网络向目标应用发送包含恶意载荷的HTTP请求,且无需身份认证。
STEP 4
触发漏洞
Marked解析器处理输入时触发无限递归,导致Node.js进程内存占用激增。
STEP 5
达成攻击
服务器内存耗尽(OOM),应用进程崩溃,造成拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC for CVE-2026-41680 // Vulnerable versions: marked 18.0.0 - 18.0.1 // Fixed in: 18.0.2 const marked = require('marked'); // The specific 3-byte sequence: Tab (\x09), Vertical Tab (\x0b), Newline (\n) const maliciousInput = "\x09\x0b\n"; console.log("Testing with vulnerable version..."); try { marked.parse(maliciousInput); // This will trigger infinite recursion and eventually OOM crash } catch (e) { console.error("Caught exception:", e); }

影响范围

Marked 18.0.0
Marked 18.0.1

防御指南

临时缓解措施
建议立即升级到Marked 18.0.2或更高版本以彻底修复此漏洞。如果无法立即升级,可以在应用层面对Markdown输入进行严格的预处理,过滤掉特定的控制字符组合,或者为解析进程设置内存和CPU使用限制,防止因递归过深导致的主机资源耗尽。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表