CVE-2026-46625
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 34 - wyżej niż 34% wszystkich znanych CVE
Streszczenie
JavaScript Cookie (js-cookie) w wersji przed 3.0.7 zawiera podatność na zanieczyszczenie prototypu przez funkcję pomocniczą assign(). Atakujący może wstrzyknąć własne atrybuty do ciasteczek, takie jak domain, secure, samesite, expires czy path, co pozwala na modyfikację zachowania ciasteczek poza kontrolą programisty.
Ocena ryzyka
Ryzyko polega na możliwości przejęcia kontroli nad atrybutami ciasteczek, co może prowadzić do ataków typu session fixation, naruszenia polityki SameSite, wycieku danych lub osłabienia zabezpieczeń aplikacji webowej.
Rekomendacja
Należy natychmiast zaktualizować bibliotekę js-cookie do wersji 3.0.7 lub nowszej. Jeśli aktualizacja nie jest możliwa, należy unikać przekazywania do biblioteki danych pochodzących z JSON.parse bez uprzedniej walidacji.
Oryginalny opis (angielski, źródło NVD)
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.

