ReDoS 漏洞总结:LINK_TITLE_RE 漏洞概述 在 库中, 正则表达式存在正则表达式拒绝服务(ReDoS)漏洞。攻击者可以通过构造特定的 Markdown 输入,导致解析器陷入指数级回溯,从而造成拒绝服务。 严重程度:High (CVSS v3 7.5/10) 受影响版本:>=3.0.0a1, <=3.2.0 触发条件:包含大量未闭合反斜杠 的 Markdown 输入。 影响范围 影响类型:拒绝服务 (Denial of Service)。 受影响场景:任何使用 解析用户提供的 Markdown 的应用程序或服务(如 Web 应用、文档系统、API 端点等)。 性能影响: 52 字节的恶意输入可导致解析阻塞约 6 秒。 随着输入长度增加,执行时间呈指数级增长。 修复方案 建议修复:排除反斜杠字符 ( ) 从 catch-all 字符类中,以消除交替分支的重叠。 代码对比: 注:修复后的代码确保反斜杠只能被转义标点符号分支消耗,消除了双引号和单引号分支中的歧义。 POC 代码 (Proof of Concept) Python 测试脚本: 输出示例: 另一种利用方式(Block link reference definitions):