{"schemaVersion":3,"id":"CVE-2026-4983","aliases":[],"status":"published","duplicateOf":null,"title":null,"description":"Open VSX Registry does not sanitize SVG files uploaded as extension icons prior to storage, and serves them with Content-Type: image/svg+xml without security headers such as Content-Security-Policy or Content-Disposition: attachment. This allows an attacker to publish an extension with a malicious SVG icon and achieve stored cross-site scripting (XSS) when a user navigates directly to the icon URL.\n\n\n\n\nOn deployments using local storage, script execution occurs within the Open VSX application origin, enabling session hijacking, authentication token theft, and unauthorized extension publishing. On deployments backed by external storage (such as open-vsx.org with an S3-backed CDN), execution is confined to the storage origin, reducing impact but still permitting phishing attacks and credential harvesting through attacker-crafted pages.","dates":{"published":"2026-06-23T10:50:38.938Z","modified":"2026-06-23T12:03:13.663Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":5.4,"severity":"medium","version":"3.1","versionLabel":"v3.1","source":"NVD","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":4.1,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:N/I:L/A:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":5.4,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.0031,"percentile":0.22388,"severity":"low","asOf":"2026-10-20T00:00:00.000Z","change":{"pp":0,"baselineDate":"2026-09-20T00:00:00.000Z","baselineScore":0.0031},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.0031,"percentile":0.22388}],"last30":[{"date":"2026-09-20T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.0031,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.0031,"percentile":0.22388}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[{"id":"REF_C5ED15251B078A36","name":"Exploit Reference (gitlab.eclipse.org)","source":"reference","url":"https://gitlab.eclipse.org/security/cve-assignment/-/work_items/91","maturity":"unknown","reliabilityScore":0.2,"verified":false,"type":null,"platforms":[],"requiresAuth":null,"exploitdb":null,"metasploit":null}],"exploitCount":1,"weaknesses":[{"id":"CWE-79","name":"Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","description":"The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/79.html"}],"affected":[{"vendor":"eclipse foundation","product":"eclipse open vsx","name":"Eclipse Open VSX","label":"eclipse open vsx","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 0.1.0, < 0.34.1","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 0.1.0, < 0.34.1","eol":null,"hubHref":"/vendor/eclipse_foundation/eclipse_open_vsx"},{"vendor":"eclipse","product":"open_vsx","name":"open vsx","label":"open_vsx","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 0.1.0, < 0.34.1","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 0.1.0, < 0.34.1","eol":null,"hubHref":"/vendor/eclipse/open_vsx"}],"affectedCount":2,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://gitlab.eclipse.org/security/cve-assignment/-/work_items/91","label":"gitlab.eclipse.org/security/cve-assignment/-/work_items/91","hostname":"gitlab.eclipse.org","tags":["Issue Tracking","Vendor Advisory","Exploit"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-06-23T10:50:38.938Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-06-23T12:03:13.663Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":32,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-20T16:54:08.278Z","stale":false,"partial":false}}