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