关键信息总结 漏洞概述 类型: ReDoS (Regular Expression Denial of Service) 位置: HTML Sanitization in 文件 影响组件: - 项目: chinese-poetry/chinese-poetry - 文件: - 漏洞代码: 漏洞分析 问题根源: 正则表达式 中的组合导致了灾难性回溯。 - : 匹配任意字符(包括换行符) - : 尝试匹配对应的闭合标签 攻击场景: 当输入字符串包含多个部分打开的标签(如 ),但没有对应的闭合标签时,正则引擎会陷入无限回溯。 证明概念 (PoC) 攻击者可以通过发送包含特定字符串的请求来触发漏洞,例如: 测试结果表明,当字符串长度达到一定值时,会导致事件循环阻塞。 建议修复方案 修改正则表达式: 使用负向前瞻避免灾难性回溯。 - 漏洞正则: - 修复后正则: 解释: 通过添加负向前瞻 确保在匹配过程中不会遇到预期的闭合标签,从而避免不必要的回溯。 详细解析 问题模式: 在无法匹配到闭合标签时,会导致正则引擎尝试无数种组合,造成性能瓶颈。 解决方案: 使用负向前瞻确保每次匹配都简单高效,避免指数级状态爆炸。