关键信息总结 漏洞概述 漏洞类型: ReDoS (Regular Expression Denial of Service) 受影响文件: 漏洞描述: 在HTML Sanitization过程中,正则表达式处理恶意构造的字符串时会导致Node.js事件循环阻塞,从而引发服务拒绝。 受影响组件 项目: chinese-poetry/chinese-poetry 文件: 易受攻击代码: 漏洞分析 问题根源: 正则表达式中的 和 组合导致了“灾难性回溯”。 具体原因: 当输入包含部分匹配的标签(如 但没有对应的 )时,正则引擎会尝试所有可能的路径,导致CPU消耗过高和事件循环阻塞。 概念验证 (PoC) 攻击示例: 发送包含特定字符串的请求,如 重复多次。 效果: 导致事件循环阻塞,服务不可用。 建议修复方案 修改正则表达式: 使用负向前瞻来避免不必要的回溯。 修复后的正则表达式: 解释: 新的正则表达式通过负向前瞻确保不会匹配到结束标签之前的内容,从而避免回溯问题。 详细解析 问题模式: 和 的组合在遇到不完整标签时导致回溯。 解决方案: 使用负向前瞻 确保逐字符匹配,直到遇到结束标签。 结论 通过上述修复,可以有效防止ReDoS攻击,保障服务的稳定性和安全性。