CVE Catalog

CVE-2026-46625

HighCVSS 7.5
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Elevated risk
0.92%

58th percentile - higher than 58% of all known CVEs

Summary

js-cookie before version 3.0.7 has a prototype pollution vulnerability in the `assign()` function. When copying properties from an object from `JSON.parse`, the `__proto__` attribute can be copied, allowing an attacker to set custom cookie attributes such as `domain`, `secure`, or `path`.

Risk Assessment

An attacker can modify cookie attributes that the developer thought were locked down, potentially leading to session hijacking or cross-site scripting (XSS) attacks.

Recommendation

Update js-cookie to version 3.0.7 or later.

Related vulnerabilities

Original NVD description (English source)

JavaScript Cookie is a JavaScript API for handling cookies, client-side. Prior to version 3.0.7, js-cookie's internal assign() helper copies properties with for...in + plain assignment. When the source object is produced by JSON.parse, the JSON object's "__proto__" member is an own enumerable property, so the for…in enumerates it and the target[key] = source[key] write triggers the Object.prototype.__proto__ setter on the fresh target ({}). The result is a per-instance prototype hijack: Object.prototype itself is untouched, but the merged attributes object now inherits attacker-controlled keys. Because the consuming set() function then enumerates the merged object with another for...in, every key the attacker placed on the polluted prototype lands in the resulting Set-Cookie string as an attribute pair. The attacker can set domain=, secure=, samesite=, expires=, and path= on cookies whose attributes the developer thought were locked down. This issue has been patched in version 3.0.7.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS