CVE-2026-23736seroval是一个用于JavaScript值字符串化的库,能够处理JSON.stringify无法处理的复杂数据结构。然而在1.4.0及以下版本中,由于在JSON反序列化过程中缺少正确的输入验证,攻击者可以通过构造恶意对象键(object keys)来污染JavaScript对象的原型链。该漏洞仅影响seroval的JSON反序列化功能,攻击者无需任何认证或用户交互即可利用此漏洞。虽然CVSS评分为7.3(高危),机密性、完整性和可用性影响均为低级别,但原型污染漏洞可能导致应用程序逻辑被篡改、拒绝服务或潜在的远程代码执行。此漏洞已于版本1.4.1中修复。
seroval库在实现JSON.parse风格的反序列化功能时,直接将用户可控的输入作为对象键使用,而未对特殊属性名(如__proto__、constructor)进行过滤或验证。当反序列化包含恶意构造的对象键的JSON数据时,这些键会被直接赋值给目标对象,从而允许攻击者修改对象的原型属性。具体来说,攻击者可以通过在JSON数据中插入形如{"__proto__": {"isAdmin": true}}的结构,使得在反序列化过程中将isAdmin属性添加到Object.prototype上,影响所有对象实例。此类原型污染可被用于绕过安全检查、篡改应用程序逻辑或触发进一步的客户端攻击。由于该库常用于SSR框架、状态管理库等场景,因此前端应用和Node.js服务端应用都可能受到影响。