CVE-2026-100691
Hugo before 0.166.0 Stored XSS via lineAnchors code block option
Hugo versions 0.75.0 through 0.165.x contain a stored cross-site scripting vulnerability: the syntax highlighter does not escape the lineAnchors option before passing it to Chroma, which writes the value verbatim into the id and href attributes of the generated line-number markup. A crafted lineAnchors value supplied as a Markdown code fence attribute (or passed to the highlight template function) results in unescaped HTML in the rendered page, allowing arbitrary JavaScript to execute in the browsers of visitors to the generated site. This affects sites that build and publish Markdown from untrusted contributors; Hugo's security model otherwise considers content trusted input. Fixed in 0.166.0, where the lineAnchors value is HTML-escaped before being passed to Chroma.
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 before 0.166.0 Stored XSS via lineAnchors code block option
Hugo versions 0.75.0 through 0.165.x contain a stored cross-site scripting vulnerability: the syntax highlighter does not escape the lineAnchors option before passing it to Chroma, which writes the value verbatim into the id and href attributes of the generated line-number markup. A crafted lineAnchors value supplied as a Markdown code fence attribute (or passed to the highlight template function) results in unescaped HTML in the rendered page, allowing arbitrary JavaScript to execute in the browsers of visitors to the generated site. This affects sites that build and publish Markdown from untrusted contributors; Hugo's security model otherwise considers content trusted input. Fixed in 0.166.0, where the lineAnchors value is HTML-escaped before being passed to Chroma.
- Record
CVE-2026-100691- 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 - Weakness
- CWE-79
- Updated
- 2026-11-02
EUVDEUVD-2026-87664
5.1
Hugo versions 0.75.0 through 0.165.x contain a stored cross-site scripting vulnerability: the syntax highlighter does not escape the lineAnchors option before passing it to Chroma, which writes the value verbatim into the id and href attributes of the generated line-number markup. A crafted lineAnchors value supplied as a Markdown code fence attribute (or passed to the highlight template function) results in unescaped HTML in the rendered page, allowing arbitrary JavaScript to execute in the browsers of visitors to the generated site. This affects sites that build and publish Markdown from untrusted contributors; Hugo's security model otherwise considers content trusted input. Fixed in 0.166.0, where the lineAnchors value is HTML-escaped before being passed to Chroma.
- Record
EUVD-2026-87664- 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-8v94-8989-vc79
5.1
Hugo versions 0.75.0 through 0.165.x contain a stored cross-site scripting vulnerability: the...
Hugo versions 0.75.0 through 0.165.x contain a stored cross-site scripting vulnerability: the syntax highlighter does not escape the lineAnchors option before passing it to Chroma, which writes the value verbatim into the id and href attributes of the generated line-number markup. A crafted lineAnchors value supplied as a Markdown code fence attribute (or passed to the highlight template function) results in unescaped HTML in the rendered page, allowing arbitrary JavaScript to execute in the browsers of visitors to the generated site. This affects sites that build and publish Markdown from untrusted contributors; Hugo's security model otherwise considers content trusted input. Fixed in 0.166.0, where the lineAnchors value is HTML-escaped before being passed to Chroma.
- Record
GHSA-8v94-8989-vc79- 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
NVD
5.1
Hugo versions 0.75.0 through 0.165.x contain a stored cross-site scripting vulnerability: the syntax highlighter does not escape the lineAnchors option before passing it to Chroma, which writes the value verbatim into the id and href attributes of the generated line-number markup. A crafted lineAnchors value supplied as a Markdown code fence attribute (or passed to the highlight template function) results in unescaped HTML in the rendered page, allowing arbitrary JavaScript to execute in the browsers of visitors to the generated site. This affects sites that build and publish Markdown from untrusted contributors; Hugo's security model otherwise considers content trusted input. Fixed in 0.166.0, where the lineAnchors value is HTML-escaped before being passed to Chroma.
- Record
CVE-2026-100691- 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 before 0.166.0 Stored XSS via lineAnchors code block option
Hugo versions 0.75.0 through 0.165.x contain a stored cross-site scripting vulnerability: the syntax highlighter does not escape the lineAnchors option before passing it to Chroma, which writes the value verbatim into the id and href attributes of the generated line-number markup. A crafted lineAnchors value supplied as a Markdown code fence attribute (or passed to the highlight template function) results in unescaped HTML in the rendered page, allowing arbitrary JavaScript to execute in the browsers of visitors to the generated site. This affects sites that build and publish Markdown from untrusted contributors; Hugo's security model otherwise considers content trusted input. Fixed in 0.166.0, where the lineAnchors value is HTML-escaped before being passed to Chroma.
- Record
CVE-2026-100691- 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-100691
5.1
Hugo versions 0.75.0 through 0.165.x contain a stored cross-site scripting vulnerability: the syntax highlighter does not escape the lineAnchors option before passing it to Chroma, which writes the value verbatim into the id and href attributes of the generated line-number markup. A crafted lineAnchors value supplied as a Markdown code fence attribute (or passed to the highlight template function) results in unescaped HTML in the rendered page, allowing arbitrary JavaScript to execute in the browsers of visitors to the generated site. This affects sites that build and publish Markdown from untrusted contributors; Hugo's security model otherwise considers content trusted input. Fixed in 0.166.0, where the lineAnchors value is HTML-escaped before being passed to Chroma.
- Record
DEBIAN-CVE-2026-100691- 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 - Updated
- 2026-11-02
OSVRHSA-2026:66266
7.4
Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update
- Record
RHSA-2026:66266- CVSS 3.1
- 7.4 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:N/A:N - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-100691
5.1
Hugo versions 0.75.0 through 0.165.x contain a stored cross-site scripting vulnerability: the syntax highlighter does not escape the lineAnchors option before passing it to Chroma, which writes the value verbatim into the id and href attributes of the generated line-number markup. A crafted lineAnchors value supplied as a Markdown code fence attribute (or passed to the highlight template function) results in unescaped HTML in the rendered page, allowing arbitrary JavaScript to execute in the browsers of visitors to the generated site. This affects sites that build and publish Markdown from untrusted contributors; Hugo's security model otherwise considers content trusted input. Fixed in 0.166.0, where the lineAnchors value is HTML-escaped before being passed to Chroma.
- Record
UBUNTU-CVE-2026-100691- 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
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
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.166.0-1, plus listed versions 0.131.0-10.131.0-20.150.0-10.150.1-10.151.0-1 Show 41 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-3 |
0.166.0-1 |
hugoRed Hat:hummingbird:1 From an advisory covering 9 CVEs |
before 0:0.166.0-0.1.hum1 | 0:0.166.0-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 |
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: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-100691 is a medium vulnerability (CVSS 5.1) in Gohugo Hugo, published September 10, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.17%, the 6th percentile. Fixed in hugo 0.166.0-1.
References
github.com/gohugoio/hugo/security/advisories/GHSA-q4xf-287f-98r8
vulncheck.com/advisories/hugo-before-0.166.0-stored-xss-via-lineanchors-code-block-option
nvd.nist.gov/vuln/detail/CVE-2026-100691
github.com/advisories/GHSA-8v94-8989-vc79
github.com/CVEProject/cvelistV5/tree/main/cves/2026/100xxx/CVE-2026-100691.json
security-tracker.debian.org/tracker/CVE-2026-100691
Show 60 moreShow less
access.redhat.com/errata/RHSA-2026:66266
images.redhat.com
access.redhat.com/security/cve/CVE-2026-10618
access.redhat.com/security/updates/classification
access.redhat.com/security/cve/CVE-2026-10582
access.redhat.com/security/cve/CVE-2026-44301
access.redhat.com/security/cve/CVE-2026-33812
access.redhat.com/security/cve/CVE-2026-100693
access.redhat.com/security/cve/CVE-2026-100690
access.redhat.com/security/cve/CVE-2026-100694
access.redhat.com/security/cve/CVE-2026-100692
access.redhat.com/security/cve/CVE-2026-100691
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_66266.json
bugzilla.redhat.com/show_bug.cgi?id=2521803
cve.org/CVERecord?id=CVE-2026-10582
nvd.nist.gov/vuln/detail/CVE-2026-10582
github.com/gohugoio/hugo
github.com/gohugoio/hugo/blob/v0.165.0/config/security/securityConfig.go
github.com/gohugoio/hugo/blob/v0.165.0/resources/resource_factories/create/create.go
vulncheck.com/advisories/hugo-through-server-side-request-forgery-via-security-http-urls-lacking-destination-address-validation
bugzilla.redhat.com/show_bug.cgi?id=2521802
cve.org/CVERecord?id=CVE-2026-10618
nvd.nist.gov/vuln/detail/CVE-2026-10618
github.com/gohugoio/hugo/blob/v0.165.0/markup/goldmark/codeblocks/render.go
github.com/gohugoio/hugo/blob/v0.165.0/markup/highlight/highlight.go
github.com/gohugoio/hugo/blob/v0.165.0/markup/internal/attributes/attributes.go
vulncheck.com/advisories/hugo-through-stored-cross-site-scripting-via-unescaped-code-fence-attribute-values
bugzilla.redhat.com/show_bug.cgi?id=2460227
cve.org/CVERecord?id=CVE-2026-33812
nvd.nist.gov/vuln/detail/CVE-2026-33812
go.dev/cl/761180
go.dev/issue/78382
pkg.go.dev/vuln/GO-2026-4962
bugzilla.redhat.com/show_bug.cgi?id=2476862
cve.org/CVERecord?id=CVE-2026-44301
nvd.nist.gov/vuln/detail/CVE-2026-44301
github.com/gohugoio/hugo/security/advisories/GHSA-x597-9fr4-5857
bugzilla.redhat.com/show_bug.cgi?id=2541815
cve.org/CVERecord?id=CVE-2026-100690
nvd.nist.gov/vuln/detail/CVE-2026-100690
github.com/gohugoio/hugo/security/advisories/GHSA-x3mx-cm49-8m9c
vulncheck.com/advisories/hugo-0.161.0-to-0.165.0-arbitrary-file-read-via-symlinks
bugzilla.redhat.com/show_bug.cgi?id=2541895
cve.org/CVERecord?id=CVE-2026-100691
bugzilla.redhat.com/show_bug.cgi?id=2541910
cve.org/CVERecord?id=CVE-2026-100692
nvd.nist.gov/vuln/detail/CVE-2026-100692
github.com/gohugoio/hugo/security/advisories/GHSA-797m-7j5g-3rpr
vulncheck.com/advisories/hugo-before-0.166.0-path-traversal-via-symlinked-mount-roots
bugzilla.redhat.com/show_bug.cgi?id=2541830
cve.org/CVERecord?id=CVE-2026-100693
nvd.nist.gov/vuln/detail/CVE-2026-100693
github.com/gohugoio/hugo/security/advisories/GHSA-pmrv-x7gp-2rjw
vulncheck.com/advisories/hugo-0.162.0-before-0.166.0-ip-literal-deny-rule-bypass
bugzilla.redhat.com/show_bug.cgi?id=2541804
cve.org/CVERecord?id=CVE-2026-100694
nvd.nist.gov/vuln/detail/CVE-2026-100694
github.com/gohugoio/hugo/security/advisories/GHSA-pq74-mj4h-cjq2
vulncheck.com/advisories/hugo-before-0.166.0-cross-site-scripting-via-text-org
ubuntu.com/security/CVE-2026-100691
Left out here: 47 versions. The JSON record has them.