{"id":"CVE-2026-123568","kind":"vulnerability","aliases":["CVE-2026-123568"],"related":[],"title":"devalue: prototype pollution in uneval lets untrusted data alter object prototypes","description":"Sveltejs devalue before 5.6.3 contains a prototype pollution vulnerability that allows attackers to alter object prototypes by supplying untrusted data to uneval. When the generated code is later evaluated, it creates objects with polluted prototypes, producing output data whose shape differs from the original input.","summary":"devalue, a Svelte serialization library, is vulnerable to prototype pollution when untrusted data is passed to its uneval function. When the generated code is later evaluated, objects get polluted prototypes and produce output whose shape differs from the input.","severity":"medium","cvss":4.4,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["javascript","npm","package","svelte","sveltekit"],"not_affected_if":["no-uneval-usage","trusted-data-only"],"how_to_check":"- Check the installed devalue version with `npm ls devalue` in each project.\n- Search lockfiles for devalue entries below `5.6.3`.\n- Find places where untrusted input reaches `uneval` and its output is evaluated.","fix":"- devalue: move to `5.6.3` or later","status":"open","published_at":"2026-11-08T02:16:49+00:00","first_seen_at":"2026-11-08T02:21:12+00:00","triaged_at":"2026-11-08T02:25:34+00:00","updated_at":"2026-11-08T02:25:34+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-11-08T02:25:34Z","model":"claude-haiku-5-5","output":{"fix":"- devalue: move to `5.6.3` or later","reach":"unknown","title":"devalue: prototype pollution in uneval lets untrusted data alter object prototypes","impact":"medium","summary":"devalue, a Svelte serialization library, is vulnerable to prototype pollution when untrusted data is passed to its uneval function. When the generated code is later evaluated, objects get polluted prototypes and produce output whose shape differs from the input.","audience":"developers","category":"package","nicknames":[],"who_cares":["svelte","sveltekit","npm","javascript"],"confidence":0.6,"fix_status":"available","needs_auth":"unknown","worst_case":"object prototypes polluted, output data shape altered","analyst_note":"","how_to_check":"- Check the installed devalue version with `npm ls devalue` in each project.\n- Search lockfiles for devalue entries below `5.6.3`.\n- Find places where untrusted input reaches `uneval` and its output is evaluated.","plain_action":"","needs_analyst":false,"not_affected_if":["trusted-data-only","no-uneval-usage"],"who_is_affected":"Applications that pass untrusted data to devalue's uneval and then evaluate the generated code are exposed. Projects that only serialize trusted data or do not use uneval with untrusted input can likely skip it.","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000678,"input_tokens":4269,"output_tokens":502,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-123568':14A,17A '-2026':13A,16A '5.6.3':65C 'allow':72C 'alter':9A,75C 'attack':73C 'code':45B,87C 'contain':66C 'creat':92C 'cve':12A,15A 'data':8A,35B,81C,99C 'devalu':1A,23B,63C 'differ':58B,102C 'evalu':48B,90C 'function':41B 'generat':44B,86C 'get':50B 'input':61B,106C 'javascript':18B 'later':47B,89C 'let':6A 'librari':27B 'npm':19B 'object':10A,49B,76C,93C 'origin':105C 'output':55B,98C 'packag':20B 'pass':37B 'pollut':3A,32B,51B,69C,95C 'produc':54B,97C 'prototyp':2A,11A,31B,52B,68C,77C,96C 'serial':26B 'shape':57B,101C 'suppli':79C 'svelt':21B,25B 'sveltej':62C 'sveltekit':22B 'unev':5A,40B,83C 'untrust':7A,34B,80C 'vulner':29B,70C 'whose':56B,100C","nicknames":[],"mitigations":[],"who_affected":"Applications that pass untrusted data to devalue's uneval and then evaluate the generated code are exposed. Projects that only serialize trusted data or do not use uneval with untrusted input can likely skip it.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"pkeys":[],"ptokens":[],"labels":["javascript","medium","npm","package","svelte","sveltekit"],"campaign_type":null,"search_a":"'-123568':14A,17A '-2026':13A,16A 'alter':9A 'cve':12A,15A 'data':8A 'devalu':1A 'let':6A 'object':10A 'pollut':3A 'prototyp':2A,11A 'unev':5A 'untrust':7A","search_b":"'code':45B 'data':35B 'devalu':23B 'differ':58B 'evalu':48B 'function':41B 'generat':44B 'get':50B 'input':61B 'javascript':18B 'later':47B 'librari':27B 'npm':19B 'object':49B 'output':55B 'packag':20B 'pass':37B 'pollut':32B,51B 'produc':54B 'prototyp':31B,52B 'serial':26B 'shape':57B 'svelt':21B,25B 'sveltekit':22B 'unev':40B 'untrust':34B 'vulner':29B 'whose':56B","search_c":"'5.6.3':65C 'allow':72C 'alter':75C 'attack':73C 'code':87C 'contain':66C 'creat':92C 'data':81C,99C 'devalu':63C 'differ':102C 'evalu':90C 'generat':86C 'input':106C 'later':89C 'object':76C,93C 'origin':105C 'output':98C 'pollut':69C,95C 'produc':97C 'prototyp':68C,77C,96C 'shape':101C 'suppli':79C 'sveltej':62C 'unev':83C 'untrust':80C 'vulner':70C 'whose':100C","first_public_at":"2026-02-18T20:31:19+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:H/AT:P/PR:H/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-123568","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-123568","severity":null,"published_at":"2026-11-08T02:16:49+00:00","modified_at":"2026-11-08T02:16:49+00:00","first_seen_at":"2026-11-08T02:21:12+00:00","fetched_at":"2026-11-08T02:21:12+00:00","note":null}],"documents":[{"id":99287,"url":"https://github.com/sveltejs/devalue/security/advisories/GHSA-8qm3-746x-r74r","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-02-18T20:31:19+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":99288,"url":"https://www.vulncheck.com/advisories/sveltejs-devalue-before-5.6.3-prototype-pollution-via-uneval-output","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.com"}],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}