Skip to content
Heist/ feed
Back to feed
Medium

esm.sh CDN service has JS Template Literal Injection in CSS-to-JavaScript

Type: advisorySources: OSV

esm.sh is a nobuild content delivery network(CDN) for modern web development. Prior to version 136, The esm.sh CDN service contains a Template Literal Injection vulnerability (CWE-94) in its CSS-to-JavaScript module conversion feature. When a CSS file is requested with the ?module query parameter, esm.sh converts it to a JavaScript module by embedding the CSS content directly into a template literal without proper sanitization. An attacker can inject malicious JavaScript code using ${...} expressions within CSS files, which will execute when the module is imported by victim applications. This enables Cross-Site Scripting (XSS) in browsers and Remote Code Execution (RCE) in Electron applications. This issue has been patched in version 136.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2025-65026
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 15:24 UTC · Revision 1

Source evidence

esm.sh CDN service has JS Template Literal Injection in CSS-to-JavaScript

core-osv · Original source

Published 19 Nov 2025, 17:33 UTC

esm.sh is a nobuild content delivery network(CDN) for modern web development. Prior to version 136, The esm.sh CDN service contains a Template Literal Injection vulnerability (CWE-94) in its CSS-to-JavaScript module conversion feature. When a CSS file is requested with the ?module query parameter, esm.sh converts it to a JavaScript module by embedding the CSS content directly into a template literal without proper sanitization. An attacker can inject malicious JavaScript code using ${...} expressions within CSS files, which will execute when the module is imported by victim applications. This enables Cross-Site Scripting (XSS) in browsers and Remote Code Execution (RCE) in Electron applications. This issue has been patched in version 136.

osv:CVE-2025-65026
Complete source record
{
  "id": "19aed04c2418ad3ec1c8f63cccaf4abd3376c52fcb7c1ee8a2fe2a7202589b56",
  "url": "https://osv.dev/vulnerability/CVE-2025-65026",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "esm.sh CDN service has JS Template Literal Injection in CSS-to-JavaScript",
    "summary": "esm.sh is a nobuild content delivery network(CDN) for modern web development. Prior to version 136, The esm.sh CDN service contains a Template Literal Injection vulnerability (CWE-94) in its CSS-to-JavaScript module conversion feature. When a CSS file is requested with the ?module query parameter, esm.sh converts it to a JavaScript module by embedding the CSS content directly into a template literal without proper sanitization. An attacker can inject malicious JavaScript code using ${...} expressions within CSS files, which will execute when the module is imported by victim applications. This enables Cross-Site Scripting (XSS) in browsers and Remote Code Execution (RCE) in Electron applications. This issue has been patched in version 136.",
    "evidence": "osv:CVE-2025-65026",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2025-65026",
      "aliases": [
        "CVE-2025-65026",
        "GHSA-hcpf-qv9m-vfgp",
        "GO-2025-4139"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/esm-dev/esm.sh",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "1ad31b6352bb0a064ece812f6f360e4850e16051"
                },
                {
                  "fixed": "87d2f6497574bf4448641a5527a3ac2beba5fd6c"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:esm:esm.sh:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "136"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "range": [
                      {
                        "fixed": "87d2f6497574bf4448641a5527a3ac2beba5fd6c"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v135_1",
            "v135",
            "v134",
            "v133",
            "v132",
            "v131",
            "v130",
            "v129",
            "v128",
            "v127",
            "v126",
            "v125",
            "v124",
            "v123",
            "v122",
            "v121",
            "v120",
            "v119",
            "v117",
            "v116",
            "v115",
            "v114",
            "v113",
            "v112",
            "v111",
            "v110",
            "v109",
            "v108",
            "v107",
            "v106",
            "v105",
            "v104",
            "v103",
            "v102",
            "v101",
            "v100",
            "v99",
            "v98",
            "v97",
            "v96",
            "v95",
            "v94",
            "v93",
            "v92",
            "v91",
            "v90",
            "v89",
            "v88",
            "v87",
            "v86",
            "v85",
            "v84",
            "v83",
            "v82",
            "v81",
            "v80",
            "v79",
            "v78",
            "v77",
            "v76",
            "v75",
            "v74",
            "v73",
            "v72",
            "v71",
            "v70",
            "v69",
            "v68",
            "v67",
            "v66",
            "v65",
            "v64",
            "v63",
            "v62",
            "v61",
            "v60",
            "v59",
            "v57",
            "v56",
            "v55",
            "v53",
            "v52",
            "v51",
            "v50",
            "v49",
            "v47",
            "v46",
            "v45",
            "v44",
            "v43",
            "v41",
            "v40",
            "v39",
            "v38",
            "v37",
            "v35",
            "v34"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-65026.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:29.738943122Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/65xxx/CVE-2025-65026.json",
        "https://github.com/esm-dev/esm.sh/security/advisories/GHSA-hcpf-qv9m-vfgp",
        "https://nvd.nist.gov/vuln/detail/CVE-2025-65026",
        "https://github.com/esm-dev/esm.sh/commit/87d2f6497574bf4448641a5527a3ac2beba5fd6c"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-94"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/65xxx/CVE-2025-65026.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2025-65026",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 496791,
  "published_at": "2025-11-19T17:33:11.469+00:00"
}