CVE-2026-46625
7.5
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Exploitability: 3.9 / Impact: 3.6
Source: security-advisories@github.com (Secondary)
Description
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.
Affected (8)
Configuration A
| Vulnerable Software | Affected Versions |
|---|---|
| Before 3.0.7 |
Configuration B
| Vulnerable Software | Affected Versions |
|---|---|
| Version 2.0 | |
| Version 2.0 | |
| Version 10.0 | |
| All versions | |
| All versions |
Related CWEs
CWE-1321
Improperly Controlled Modification of Object Prototype Attributes ('Prototype Pollution')
The product receives input from an upstream component that specifies attributes that are to be initialized or updated in an object, but it does not properly control modifications of attributes of the object prototype.
CWE-915
Improperly Controlled Modification of Dynamically-Determined Object Attributes
The product receives input from an upstream component that specifies multiple attributes, properties, or fields that are to be initialized or updated in an object, but it does not properly control which attributes can be modified.
References (17)
Source: security-advisories@github.com
Patch
Source: security-advisories@github.com
Release Notes
Source: security-advisories@github.com
ExploitVendor Advisory
Source: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
Third Party Advisory
Source: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
Third Party Advisory
Source: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
Third Party Advisory
Source: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
Third Party Advisory
Source: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
Third Party Advisory
Source: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
Third Party Advisory
Source: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
Third Party Advisory
Source: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
Third Party Advisory
Source: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
Third Party Advisory
Source: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
Source: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
Third Party Advisory
Source: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
Issue TrackingThird Party Advisory
Source: 134c704f-9b21-4f2e-91b3-4a467353bcc0
ExploitVendor Advisory
Source: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
Third Party Advisory
Timeline
No history available yet.