Skip to content
Heist/ feed
Back to feed
Medium

EspoCRM: Stored XSS via SVG attachment loading same-origin JavaScript

Type: advisorySources: OSV

EspoCRM is an open source customer relationship management application. Versions 9.3.3 and below allow authenticated users to upload SVG attachments through normal attachment-capable fields and later serve those SVG files as top-level inline documents through both the attachment and image entry points, resulting in stored cross-user XSS reachable through a normal attachment workflow. Although inline SVG script is blocked by the response CSP, the same CSP still allows same-origin external script. As a result, an attacker can upload a malicious SVG together with a second attacker-controlled JavaScript attachment, then trick another user into opening the SVG to execute JavaScript in the victim's EspoCRM origin. This issue has been fixed in version 9.3.4.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-33741
Confirmed fixed CVEs
Not specified
Updated in this feed
2 Nov 2026, 22:22 UTC · Revision 1

Source evidence

EspoCRM: Stored XSS via SVG attachment loading same-origin JavaScript

core-osv · Original source

Published 19 May 2026, 18:14 UTC

EspoCRM is an open source customer relationship management application. Versions 9.3.3 and below allow authenticated users to upload SVG attachments through normal attachment-capable fields and later serve those SVG files as top-level inline documents through both the attachment and image entry points, resulting in stored cross-user XSS reachable through a normal attachment workflow. Although inline SVG script is blocked by the response CSP, the same CSP still allows same-origin external script. As a result, an attacker can upload a malicious SVG together with a second attacker-controlled JavaScript attachment, then trick another user into opening the SVG to execute JavaScript in the victim's EspoCRM origin. This issue has been fixed in version 9.3.4.

osv:CVE-2026-33741
Complete source record
{
  "id": "276631add172ddf592df708c09a91b21e3a88e65d631cd9537d102e701a92936",
  "url": "https://osv.dev/vulnerability/CVE-2026-33741",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "EspoCRM: Stored XSS via SVG attachment loading same-origin JavaScript",
    "summary": "EspoCRM is an open source customer relationship management application. Versions 9.3.3 and below allow authenticated users to upload SVG attachments through normal attachment-capable fields and later serve those SVG files as top-level inline documents through both the attachment and image entry points, resulting in stored cross-user XSS reachable through a normal attachment workflow. Although inline SVG script is blocked by the response CSP, the same CSP still allows same-origin external script. As a result, an attacker can upload a malicious SVG together with a second attacker-controlled JavaScript attachment, then trick another user into opening the SVG to execute JavaScript in the victim's EspoCRM origin. This issue has been fixed in version 9.3.4.",
    "evidence": "osv:CVE-2026-33741",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-33741",
      "aliases": [
        "CVE-2026-33741",
        "GHSA-5wh5-ccv2-m3pv"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:L/A:L"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/espocrm/espocrm",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "f1763e732f34fbebf7f70f176eec1ccd8a272679"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "9.3.4"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  }
                ]
              }
            }
          ],
          "versions": [
            "9.3.3",
            "9.3.2",
            "9.3.1",
            "9.3.0",
            "9.2.0",
            "9.1.0",
            "9.0.2",
            "9.0.1",
            "9.0.0",
            "8.4.0",
            "8.2.0",
            "8.1.0",
            "8.0.2",
            "8.0.1",
            "8.0.0",
            "7.4.3",
            "7.4.2",
            "7.4.1",
            "7.4.0",
            "7.3.0",
            "7.2.0",
            "7.1.3",
            "7.1.2",
            "7.1.1",
            "7.1.0",
            "7.0.8",
            "7.0.7",
            "7.0.6",
            "7.0.5",
            "7.0.4",
            "7.0.3",
            "7.0.2",
            "7.0.1",
            "7.0.0",
            "6.0.1",
            "6.0.0",
            "6.0.0-beta4",
            "6.0.0-beta2",
            "6.0.0-beta1",
            "5.9.2",
            "5.9.1",
            "5.9.0",
            "5.8.2",
            "5.8.1",
            "5.8.0",
            "5.7.5",
            "5.7.4",
            "5.7.3",
            "5.7.2",
            "5.7.1",
            "5.7.0",
            "5.6.1",
            "5.6.0",
            "5.5.1",
            "5.5.0",
            "5.4.3",
            "5.4.2",
            "5.4.1",
            "5.4.0",
            "5.3.2",
            "5.3.1",
            "5.3.0",
            "5.2.5",
            "5.2.4",
            "5.2.3",
            "5.2.2",
            "5.2.1",
            "5.2.0",
            "5.1.2",
            "5.1.1",
            "5.1.0",
            "5.0.1",
            "5.0.0",
            "4.8.0",
            "4.7.0",
            "4.6.0",
            "4.5.0",
            "4.4.0",
            "4.3.0",
            "4.3.0-beta.2",
            "4.3.0-beta.1",
            "4.2.4",
            "4.2.3",
            "4.2.2",
            "4.2.1",
            "4.2.0",
            "4.1.4",
            "4.1.3",
            "4.1.2",
            "4.1.1",
            "4.1.0",
            "4.0.3",
            "4.0.2",
            "4.0.1",
            "4.0.0",
            "4.0.0-beta.4",
            "4.0.0-beta.3",
            "4.0.0-beta.2",
            "4.0.0-beta.1",
            "3.9.1",
            "3.9.0",
            "3.8.0",
            "3.7.1",
            "3.7.0",
            "3.6.1",
            "3.6.0",
            "3.5.0",
            "3.4.2",
            "3.4.1",
            "3.4.0",
            "3.3.0",
            "3.2.0",
            "3.1.0",
            "3.0.0",
            "2.9.0",
            "2.8.1",
            "2.8.0",
            "2.6.0",
            "2.5.2",
            "2.5.1",
            "2.5.0",
            "2.4.0",
            "2.3.0",
            "2.0.1",
            "1.2.0",
            "1.1.2",
            "1.1.1",
            "1.1.0",
            "1.0.1",
            "1.0.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-33741.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:23.941954813Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33741.json",
        "https://github.com/espocrm/espocrm/security/advisories/GHSA-5wh5-ccv2-m3pv",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-33741"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-79"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33741.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-33741",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 490521,
  "published_at": "2026-05-19T18:14:36.157+00:00"
}