MEDIUM 4.1

CVE-2026-4983: Open VSX Registry Stored XSS via Unsanitized SVG Icons

Open VSX Registry, an extension marketplace used by developers, has a vulnerability where it fails to properly secure SVG image files that extensions upload as icons. When someone views the icon directly, malicious code embedded in the SVG can execute in their browser. The impact depends on how the registry is hosted: if it uses its own servers, an attacker can steal session tokens and impersonate users; if it relies on external cloud storage like Amazon S3, the risk is lower but attackers can still create convincing fake login pages to harvest credentials.

Source data · NVD / CISA · public domain

CVSS
3.1 · 4.1 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:N/I:L/A:N
Weaknesses (CWE)
CWE-79
Affected products
1 configuration(s)
Published / Modified
2026-06-23 / 2026-06-24

NVD description (verbatim)

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. On 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.

1 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-4983 is a stored cross-site scripting vulnerability in Open VSX Registry stemming from insufficient input validation on SVG uploads and inadequate HTTP response headers. SVG files, which are XML-based graphics, can contain JavaScript and are served as `Content-Type: image/svg+xml` without mitigations such as `Content-Security-Policy` headers or `Content-Disposition: attachment`. This permits script execution when users directly access icon URLs. The vulnerability's impact is origin-dependent: deployments using local file storage execute scripts within the Open VSX application origin, allowing token theft and unauthorized actions; deployments using external storage systems (e.g., S3-backed CDNs) confine execution to the storage origin, limiting but not eliminating risk.

Business impact

Organizations operating Open VSX deployments face two distinct threat scenarios. Self-hosted instances are at highest risk: a single malicious extension icon can compromise user sessions, allowing attackers to publish unauthorized extensions, modify existing ones, or harvest authentication credentials from administrators. CDN-backed public instances like open-vsx.org face lower but non-trivial risk: attackers can craft convincing phishing pages hosted on the CDN domain to harvest login credentials or trick developers into installing malicious extensions. Either scenario undermines the integrity of the extension ecosystem and user trust in the marketplace.

Affected systems

The vulnerability affects Eclipse Open VSX Registry in all versions that perform SVG uploads without sanitization or proper security headers. Both self-hosted deployments and public instances (such as open-vsx.org) are vulnerable, though the impact profile differs based on storage architecture. Any organization hosting or using Open VSX for extension distribution should assess their deployment model to determine exposure level.

Exploitability

Exploitation requires authenticated access to publish an extension—a moderate barrier that rules out completely anonymous attacks. However, free account creation on most Open VSX instances is permitted, making the attacker requirement low in practice. Once authenticated, crafting a malicious SVG is trivial; no specialized tools are required. User interaction is necessary (the victim must navigate to the icon URL), but this can occur through social engineering or natural browsing of extension pages. Overall, the attack is practical for motivated adversaries.

Remediation

Remediate by implementing three-layer protection: (1) sanitize all uploaded SVG files using a library such as DOMPurify or svg-sanitizer to strip executable content; (2) serve SVG icons with `Content-Type: image/svg+xml` headers accompanied by `Content-Security-Policy: default-src 'none'` and `X-Content-Type-Options: nosniff` to prevent script execution; (3) consider serving icons with `Content-Disposition: attachment` to force browser download rather than inline rendering. Additionally, implement strict input validation on file uploads to reject files with embedded scripts or event handlers. Review user authentication tokens and session handling to ensure they cannot be exfiltrated via XSS attacks.

Patch guidance

Consult the Eclipse Open VSX project repository and official security advisories for patched versions. Verify patch availability and timelines via the project's GitHub releases page and security policy. When patches become available, prioritize deployment to all Open VSX instances, particularly those handling sensitive extension distribution. Test patches in a staging environment before production deployment to ensure SVG rendering for legitimate icons remains functional.

Detection guidance

Monitor for unusual extension publication activity, especially extensions with recently-modified icons. Audit web server logs for direct requests to extension icon URLs originating from suspicious sources or in unusual patterns. Implement content security policy logging to detect CSP violations that may indicate XSS attempts. Review user session logs for evidence of unauthorized token usage or administrative actions performed by compromised accounts. For CDN-backed deployments, monitor for phishing-like page creation on the storage domain.

Why prioritize this

While the CVSS score is moderate (4.1), the vulnerability's practical exploitability and high user impact warrant prioritization. Self-hosted deployments should treat this as high-priority due to direct session hijacking risk. Public instances should prioritize patching due to the scale of potential phishing attacks. The low barrier to exploitation (free account creation, trivial SVG crafting) and direct impact on extension ecosystem integrity make this a security leadership concern despite the moderate numeric score.

Risk score, explained

The CVSS 3.1 score of 4.1 (MEDIUM) reflects the network-accessible attack vector, low attack complexity, and requirement for prior authentication. However, the scoring does not fully capture the stored nature of the vulnerability, the ability to compromise multiple users via a single malicious extension, or the origin-dependent impact escalation in self-hosted environments. Security teams should not dismiss this as low-risk based on the numeric score alone; context and deployment model are critical.

Frequently asked questions

What is the practical likelihood of this being exploited in the wild?

The barrier to exploitation is low—free account creation and simple SVG crafting—making active exploitation probable once the vulnerability becomes widely known. However, no public exploit code or active campaigns have been reported as of the advisory date. Organizations should treat this as a preventable risk requiring prompt patching rather than an immediate emergency.

How do I know if my Open VSX deployment is vulnerable?

All versions of Open VSX that do not implement SVG sanitization and security headers are vulnerable. Review your deployment's icon serving logic and HTTP response headers. If SVG files are served with `Content-Type: image/svg+xml` and lack `Content-Security-Policy` headers, you are vulnerable. Contact the Eclipse Open VSX team or check their security advisories for specific version information.

If we use the public open-vsx.org, do we need to worry about this?

Yes, but the risk is different. open-vsx.org is S3-backed, so script execution is confined to the S3 origin, not the Open VSX application origin. This prevents token theft from the registry itself. However, attackers can still create convincing phishing pages on the storage domain to harvest developer credentials. You should avoid clicking links to extension icons from untrusted sources and report suspicious extensions to the Open VSX maintainers.

Does this affect users who download extensions but do not navigate directly to icon URLs?

Most users encounter extension icons within the IDE or extension marketplace interface, not by navigating directly to icon URLs. However, extension marketplace pages, documentation, or promotional materials may link directly to icons. Additionally, if an attacker embeds a phishing page on the icon URL, social engineering can drive users there. The vulnerability poses a real but context-dependent risk to end users.

This analysis is based on the vulnerability description and CVSS scoring provided as of the advisory date. Specific patch versions, affected product releases, and remediation timelines should be verified against official Eclipse Open VSX security advisories and the project's GitHub repository. Organizations should conduct their own risk assessment based on their specific deployment architecture and exposure. No exploit code or weaponized proof-of-concepts are provided in this advisory. Source: NVD (public-domain), retrieved 2026-07-28. Analysis generated by SEC.co (claude-haiku-4-5).