← Back to CVE Explorer

CVE-2026-4983

Full vulnerability record from the local CVENow database.

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

Severity
MEDIUM
CVSS score
5.4 (v3.1)
Vulnerability status
Analyzed
Source identifier
Published
2026-06-23 12:16:26.537000
Last modified
2026-10-25 23:10:00.167000
View original CVE JSON
{
  "id": "CVE-2026-4983",
  "sourceIdentifier": "[email protected]",
  "published": "2026-06-23T12:16:26.537",
  "lastModified": "2026-10-25T23:10:00.167",
  "vulnStatus": "Analyzed",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "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."
    },
    {
      "lang": "es",
      "value": "Open VSX Registry no sanitiza los archivos SVG subidos como iconos de extensión antes de su almacenamiento, y los sirve con Content-Type: image/svg+xml sin encabezados de seguridad como Content-Security-Policy o Content-Disposition: attachment. Esto permite a un atacante publicar una extensión con un icono SVG malicioso y lograr cross-site scripting (XSS) almacenado cuando un usuario navega directamente a la URL del icono.\n\nEn implementaciones que utilizan almacenamiento local, la ejecución de scripts ocurre dentro del origen de la aplicación Open VSX, lo que permite el secuestro de sesión, el robo de tokens de autenticación y la publicación no autorizada de extensiones. En implementaciones respaldadas por almacenamiento externo (como open-vsx.org con una CDN respaldada por S3), la ejecución se limita al origen del almacenamiento, reduciendo el impacto pero aún permitiendo ataques de phishing y la recolección de credenciales a través de páginas creadas por el atacante."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "Eclipse Foundation",
          "product": "Eclipse Open VSX",
          "defaultStatus": "unaffected",
          "repo": "https://github.com/eclipse-openvsx/openvsx",
          "versions": [
            {
              "version": "0.1.0",
              "lessThan": "0.34.1",
              "versionType": "semver",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:N/I:L/A:N",
          "baseScore": 4.1,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "LOW",
          "userInteraction": "REQUIRED",
          "scope": "CHANGED",
          "confidentialityImpact": "NONE",
          "integrityImpact": "LOW",
          "availabilityImpact": "NONE"
        },
        "exploitabilityScore": 2.3,
        "impactScore": 1.4
      },
      {
        "source": "[email protected]",
        "type": "Primary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N",
          "baseScore": 5.4,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "LOW",
          "userInteraction": "REQUIRED",
          "scope": "CHANGED",
          "confidentialityImpact": "LOW",
          "integrityImpact": "LOW",
          "availabilityImpact": "NONE"
        },
        "exploitabilityScore": 2.3,
        "impactScore": 2.7
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-06-23T12:02:52.330281Z",
          "id": "CVE-2026-4983",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-79"
        }
      ]
    }
  ],
  "configurations": [
    {
      "nodes": [
        {
          "operator": "OR",
          "negate": false,
          "cpeMatch": [
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:eclipse:open_vsx:*:*:*:*:*:*:*:*",
              "versionStartIncluding": "0.1.0",
              "versionEndExcluding": "0.34.1",
              "matchCriteriaId": "B6474281-0832-4C15-98E7-2D434AF8832F"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://gitlab.eclipse.org/security/cve-assignment/-/work_items/91",
      "source": "[email protected]",
      "tags": [
        "Issue Tracking",
        "Vendor Advisory",
        "Exploit"
      ]
    }
  ]
}