CVE-2026-58402
Hugo default code block renderer XSS via unescaped code-fence language
Hugo is a static site generator. From 0.60.0 until 0.163.3, Hugo's default code-block renderer wrote the Markdown code-fence language or info-string into the code class="language-…" data-lang="…" wrapper without HTML escaping. A fence info-string containing a quote and a script payload breaks out of the attribute and injects a live script element. This issue is fixed in 0.163.3.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- Passive
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
5.1
Hugo default code block renderer XSS via unescaped code-fence language
Hugo is a static site generator. From 0.60.0 until 0.163.3, Hugo's default code-block renderer wrote the Markdown code-fence language or info-string into the code class="language-…" data-lang="…" wrapper without HTML escaping. A fence info-string containing a quote and a script payload breaks out of the attribute and injects a live script element. This issue is fixed in 0.163.3.
- Record
CVE-2026-58402- CVSS 4.0
- 5.1 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N - Weakness
- CWE-79
- Updated
- 2026-11-02
EUVDEUVD-2026-41904
5.1
Hugo is a static site generator. From 0.60.0 until 0.163.3, Hugo's default code-block renderer wrote the Markdown code-fence language or info-string into the code class="language-…" data-lang="…" wrapper without HTML escaping. A fence info-string containing a quote and a script payload breaks out of the attribute and injects a live script element. This issue is fixed in 0.163.3.
- Record
EUVD-2026-41904- CVSS 4.0
- 5.1 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-q76j-gcg9-vxc6
5.1
Hugo: XSS via unescaped code-fence language in default code block renderer
Hugo's default code-block renderer wrote the Markdown code-fence language / info-string into the <code class="language-…" data-lang="…"> wrapper without HTML escaping. A fence info-string containing a quote and a <script> payload breaks out of the attribute and injects a live script element.
This is not an issue if you fully trust every file under /content and every content adapter you load.
- Record
GHSA-q76j-gcg9-vxc6- CVSS 4.0
- 5.1 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N - Weakness
- CWE-79
- Updated
- 2026-11-02
NVD
5.1
Hugo is a static site generator. From 0.60.0 until 0.163.3, Hugo's default code-block renderer wrote the Markdown code-fence language or info-string into the code class="language-…" data-lang="…" wrapper without HTML escaping. A fence info-string containing a quote and a script payload breaks out of the attribute and injects a live script element. This issue is fixed in 0.163.3.
- Record
CVE-2026-58402- CVSS 4.0
- 5.1 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 5.4 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-79
- Updated
- 2026-11-02
OSV
5.1
Hugo default code block renderer XSS via unescaped code-fence language
Hugo is a static site generator. From 0.60.0 until 0.163.3, Hugo's default code-block renderer wrote the Markdown code-fence language or info-string into the code class="language-…" data-lang="…" wrapper without HTML escaping. A fence info-string containing a quote and a script payload breaks out of the attribute and injects a live script element. This issue is fixed in 0.163.3.
- Record
CVE-2026-58402- CVSS 4.0
- 5.1 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N - Weakness
- CWE-79
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-58402
5.4
Hugo is a static site generator. From 0.60.0 until 0.163.3, Hugo's default code-block renderer wrote the Markdown code-fence language or info-string into the code class="language-…" data-lang="…" wrapper without HTML escaping. A fence info-string containing a quote and a script payload breaks out of the attribute and injects a live script element. This issue is fixed in 0.163.3.
- Record
DEBIAN-CVE-2026-58402- CVSS 3.1
- 5.4 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
Show 5 moreShow less
OSVGHSA-q76j-gcg9-vxc6
5.1
Hugo: XSS via unescaped code-fence language in default code block renderer
Hugo's default code-block renderer wrote the Markdown code-fence language / info-string into the <code class="language-…" data-lang="…"> wrapper without HTML escaping. A fence info-string containing a quote and a <script> payload breaks out of the attribute and injects a live script element.
This is not an issue if you fully trust every file under /content and every content adapter you load.
- Record
GHSA-q76j-gcg9-vxc6- CVSS 4.0
- 5.1 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N - Weakness
- CWE-79
- Updated
- 2026-11-02
OSVJLSEC-2026-796
5.1
XSS via unescaped code-fence language in default code block renderer
Hugo is a static site generator. From 0.60.0 until 0.163.3, Hugo's default code-block renderer wrote the Markdown code-fence language or info-string into the code class="language-…" data-lang="…" wrapper without HTML escaping. A fence info-string containing a quote and a script payload breaks out of the attribute and injects a live script element. This issue is fixed in 0.163.3.
- Record
JLSEC-2026-796- CVSS 4.0
- 5.1 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 5.4 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
OSVRHSA-2026:36862
6.8
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:36862- CVSS 3.1
- 6.8 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:N/A:N - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-58402
5.1
Hugo is a static site generator. From 0.60.0 until 0.163.3, Hugo's default code-block renderer wrote the Markdown code-fence language or info-string into the code class="language-…" data-lang="…" wrapper without HTML escaping. A fence info-string containing a quote and a script payload breaks out of the attribute and injects a live script element. This issue is fixed in 0.163.3.
- Record
UBUNTU-CVE-2026-58402- CVSS 4.0
- 5.1 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N - CVSS 3.1
- 5.4 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
OSVGO-2026-5569 No score
Hugo: XSS via unescaped code-fence language in default code block renderer in github.com/gohugoio/hugo
Hugo: XSS via unescaped code-fence language in default code block renderer in github.com/gohugoio/hugo
- Record
GO-2026-5569- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
github.com/gohugoio/hugoGo |
0.60.0 up to 0.163.3 | 0.163.3 |
hugoDebian:12 |
All versions, plus listed versions 0.111.3-10.112.7-10.113.0-10.113.0-20.113.0-3 Show 45 moreShow less0.114.1-10.114.1-20.115.4-10.116.1-10.117.0-10.118.2-10.119.0-10.119.0-20.120.3-10.120.4-10.121.1-10.121.2-10.122.0-10.123.3-10.123.7-10.123.8-10.123.8-20.124.1-10.125.4-10.125.5-10.125.6-10.125.7-10.126.1-10.126.2-10.126.3-10.127.0-10.128.2-10.128.2-20.129.0-10.129.0-20.130.0-10.130.0-20.131.0-10.131.0-20.150.0-10.150.1-10.151.0-10.151.1-10.151.2-10.152.1-10.152.2-10.153.0-10.153.1-10.153.1-20.153.1-3 |
None known |
hugoDebian:13 |
All versions, plus listed versions 0.131.0-10.131.0-20.150.0-10.150.1-10.151.0-1 Show 45 moreShow less0.151.1-10.151.2-10.152.1-10.152.2-10.153.0-10.153.1-10.153.1-20.153.1-30.153.2-10.154.1-10.154.2-10.154.2-20.154.3-10.154.5-10.155.1-10.155.2-10.155.3-10.157.0-10.157.0-20.157.0-30.158.0-10.158.0-20.158.0-30.159.0-10.159.1-10.159.2-10.160.0-10.160.0-20.160.1-10.161.0-10.161.1-10.162.1-10.162.1-20.162.1-30.162.1-40.162.1-50.162.1-60.162.1-70.165.0-10.165.0-20.165.0-30.166.0-10.166.0-20.167.0-10.167.0-2 |
None known |
hugoDebian:14 |
before 0.165.0-1, plus listed versions 0.131.0-10.131.0-20.150.0-10.150.1-10.151.0-1 Show 38 moreShow less0.151.1-10.151.2-10.152.1-10.152.2-10.153.0-10.153.1-10.153.1-20.153.1-30.153.2-10.154.1-10.154.2-10.154.2-20.154.3-10.154.5-10.155.1-10.155.2-10.155.3-10.157.0-10.157.0-20.157.0-30.158.0-10.158.0-20.158.0-30.159.0-10.159.1-10.159.2-10.160.0-10.160.0-20.160.1-10.161.0-10.161.1-10.162.1-10.162.1-20.162.1-30.162.1-40.162.1-50.162.1-60.162.1-7 |
0.165.0-1 |
Hugo_jllJulia |
before 0.163.3+0 | 0.163.3+0 |
hugoRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:0.163.3-0.1.hum1 | 0:0.163.3-0.1.hum1 |
hugoUbuntu:16.04:LTS |
All versions, plus listed versions 0.15+git20160109.147.dd1d655-10.15+git20160109.147.dd1d655-20.15+git20160128.179.5def6d9-10.15+git20160206.203.ed23711-1 |
None known |
hugoUbuntu:18.04:LTS |
All versions, plus listed versions 0.25.1-20.26-10.35-10.37.1-10.38-10.39-10.40-10.40.1-1 |
None known |
hugoUbuntu:20.04:LTS |
All versions, plus listed versions 0.57.2-10.58.3-10.59.1-1.10.68.3-1 |
None known |
hugoUbuntu:22.04:LTS |
All versions, plus listed versions 0.80.0-60.89.4-20.90.0-10.90.1-10.91.0-1 Show 5 moreShow less0.91.2-10.92.0-10.92.1-1build10.92.2-10.92.2-1ubuntu0.1 |
None known |
Show 4 moreShow less
| Package | Affected | Fixed |
|---|---|---|
hugoUbuntu:Pro:24.04:LTS |
All versions, plus listed versions 0.113.0-30.119.0-20.120.3-10.120.4-10.121.2-1 Show 8 moreShow less0.122.0-10.123.7-1build10.123.7-1ubuntu0.10.123.7-1ubuntu0.20.123.7-1ubuntu0.2+esm10.123.7-1ubuntu0.30.123.7-1ubuntu0.3+esm10.123.7-1ubuntu0.3+esm2 |
None known |
hugoUbuntu:25.10 |
All versions, plus listed versions 0.131.0-1 |
None known |
hugoUbuntu:26.10 |
All versions, plus listed versions 0.154.5-10.162.1-50.162.1-7 |
None known |
hugoUbuntu:26.04:LTS |
All versions, plus listed versions 0.131.0-10.152.2-10.153.1-30.153.2-10.154.2-20.154.3-10.154.5-1 |
None known |
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-2026-58402 is a medium vulnerability (CVSS 5.1) in Gohugo Hugo, published June 19, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.30%, the 22nd percentile. Fixed in github.com/gohugoio/hugo 0.163.3.
References
github.com/gohugoio/hugo/security/advisories/GHSA-q76j-gcg9-vxc6
github.com/gohugoio/hugo/pull/15051
github.com/gohugoio/hugo/commit/ce1a7e0bce3713af40496ded3c2c0ceeed49231d
github.com/gohugoio/hugo/releases/tag/v0.163.3
github.com/advisories/GHSA-q76j-gcg9-vxc6
github.com/CVEProject/cvelistV5/tree/main/cves/2026/58xxx/CVE-2026-58402.json
Show 32 moreShow less
nvd.nist.gov/vuln/detail/CVE-2026-58402
security-tracker.debian.org/tracker/CVE-2026-58402
github.com/gohugoio/hugo
access.redhat.com/errata/RHSA-2026:36862
access.redhat.com/security/cve/CVE-2026-58402
access.redhat.com/security/cve/CVE-2026-58403
access.redhat.com/security/updates/classification
images.redhat.com
access.redhat.com/security/cve/CVE-2026-50133
access.redhat.com/security/cve/CVE-2026-58404
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_36862.json
bugzilla.redhat.com/show_bug.cgi?id=2497463
cve.org/CVERecord?id=CVE-2026-50133
nvd.nist.gov/vuln/detail/CVE-2026-50133
github.com/gohugoio/hugo/commit/e41a06447daa3071a01f333fdcec0a5153c3c8d1
github.com/gohugoio/hugo/releases/tag/v0.162.0
github.com/gohugoio/hugo/security/advisories/GHSA-c54g-xjwj-8g82
bugzilla.redhat.com/show_bug.cgi?id=2497467
cve.org/CVERecord?id=CVE-2026-58402
bugzilla.redhat.com/show_bug.cgi?id=2497460
cve.org/CVERecord?id=CVE-2026-58403
nvd.nist.gov/vuln/detail/CVE-2026-58403
github.com/gohugoio/hugo/commit/cf9c8f93ca2a2838ce378f9e36d052ac2f79e229
github.com/gohugoio/hugo/pull/15020
github.com/gohugoio/hugo/releases/tag/v0.163.1
github.com/gohugoio/hugo/security/advisories/GHSA-c3wq-j5vh-68rc
bugzilla.redhat.com/show_bug.cgi?id=2497450
cve.org/CVERecord?id=CVE-2026-58404
nvd.nist.gov/vuln/detail/CVE-2026-58404
github.com/gohugoio/hugo/commit/a00b5c72ac57afe26df6688ece3ca544a56df372
github.com/gohugoio/hugo/security/advisories/GHSA-r46f-3rpw-hxrv
ubuntu.com/security/CVE-2026-58402
Left out here: 47 versions. The JSON record has them.