CVE-2026-23956seroval是一个JavaScript库,用于实现超出标准JSON.stringify能力的JS值字符串化功能。该库支持复杂数据结构的序列化和反序列化操作。然而在0.2.0至1.4.0版本中,存在两个严重的安全问题。第一个问题是当使用极大正则表达式模式覆盖RegExp序列化时,会在反序列化过程中耗尽JavaScript运行时的内存资源,导致应用程序崩溃或服务中断。第二个问题是当正则表达式模式触发灾难性回溯(catastrophic backtracking)时,可能导致正则表达式拒绝服务攻击(ReDoS)。攻击者可以通过构造恶意输入,利用这些缺陷使目标系统出现内存耗尽或CPU占用率飙升的情况,从而实现对目标服务的拒绝服务攻击。攻击者无需任何认证权限即可发起攻击,且可以通过网络远程利用此漏洞。
漏洞主要存在于seroval库的RegExp序列化逻辑中。当用户自定义RegExp序列化器并传入包含极大模式或灾难性回溯模式的正则表达式时,库在反序列化过程中会尝试处理这些恶意构造的数据。具体问题点在于:1) 极大模式问题:库在处理超大正则表达式时未设置合理的内存限制或模式大小检查,导致内存快速耗尽;2) ReDoS问题:当正则表达式包含嵌套量词、重叠可选分支等会导致灾难性回溯的结构时,反序列化过程中的模式验证或匹配操作会触发指数级增长的计算量。攻击者可以通过序列化包含恶意RegExp的复杂对象,并在反序列化端触发内存耗尽或CPU占用率飙升。CVSS 3.1评分7.5(高危),攻击向量为网络、无需认证和用户交互,主要影响可用性。