漏洞总结 1. 漏洞概述 CVE编号: CVE-2020-35040 漏洞类型: 状态正则表达式导致的非确定性验证 (Stateful regexp causes non-deterministic validation) 描述: 在 库中, (有状态的正则表达式)的使用导致了 (允许声明验证)出现非确定性行为。这意味着验证逻辑可能不一致,从而可能被攻击者绕过。 2. 影响范围 受影响库: 受影响模块: (验证器模块) 具体功能: 选项的验证逻辑。 选项的验证逻辑。 涉及 , , , , 等声明的验证。 3. 修复方案 代码修复 ( ): 在 函数中,明确处理 实例,在每次测试前重置 ( ),确保正则表达式匹配是确定性的。 在 函数中,增加了对 选项的严格校验。如果该选项不是 且不是有效的字符串数组(包含非字符串元素),则抛出 。 测试增强 ( ): 添加了针对 的测试用例,确保验证过程不再受正则表达式状态影响。 添加了针对 无效选项(如非数组、包含非字符串元素)的测试用例。 4. 关键代码块 (POC/修复代码) 修复代码 ( ): 测试代码 ( ):** ``