CVE-2026-100690
Hugo v0.161.0 to v0.165.0 Arbitrary File Read via Symlinks
Hugo versions from v0.161.0 through v0.165.0 run Node.js tools (css.PostCSS, css.TailwindCSS, js.Babel) under the Node.js permission model to restrict file system reads to the project directory and configured mounts. Because the Node.js permission model validates only the lexical path and follows symbolic links that point outside the allowed set, Hugo did not detect symlinks escaping the sandbox. An attacker who can contribute content to a Hugo project (for example via a pull request) can commit a symlink such as assets/css/x.css -> /etc/passwd together with a PostCSS plugin that reads it, allowing any file readable by the Hugo build process to be disclosed and potentially embedded in the published site. This affects builds using the default security configuration; projects that do not invoke Node.js tools are unaffected. Fixed in v0.166.0, which scans allowed paths and fails the build when a symbolic link resolves outside them.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
8.7
Hugo v0.161.0 to v0.165.0 Arbitrary File Read via Symlinks
Hugo versions from v0.161.0 through v0.165.0 run Node.js tools (css.PostCSS, css.TailwindCSS, js.Babel) under the Node.js permission model to restrict file system reads to the project directory and configured mounts. Because the Node.js permission model validates only the lexical path and follows symbolic links that point outside the allowed set, Hugo did not detect symlinks escaping the sandbox. An attacker who can contribute content to a Hugo project (for example via a pull request) can commit a symlink such as assets/css/x.css -> /etc/passwd together with a PostCSS plugin that reads it, allowing any file readable by the Hugo build process to be disclosed and potentially embedded in the published site. This affects builds using the default security configuration; projects that do not invoke Node.js tools are unaffected. Fixed in v0.166.0, which scans allowed paths and fails the build when a symbolic link resolves outside them.
- Record
CVE-2026-100690- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-59
- Updated
- 2026-11-02
EUVDEUVD-2026-87663
8.7
Hugo versions from v0.161.0 through v0.165.0 run Node.js tools (css.PostCSS, css.TailwindCSS, js.Babel) under the Node.js permission model to restrict file system reads to the project directory and configured mounts. Because the Node.js permission model validates only the lexical path and follows symbolic links that point outside the allowed set, Hugo did not detect symlinks escaping the sandbox. An attacker who can contribute content to a Hugo project (for example via a pull request) can commit a symlink such as assets/css/x.css -> /etc/passwd together with a PostCSS plugin that reads it, allowing any file readable by the Hugo build process to be disclosed and potentially embedded in the published site. This affects builds using the default security configuration; projects that do not invoke Node.js tools are unaffected. Fixed in v0.166.0, which scans allowed paths and fails the build when a symbolic link resolves outside them.
- Record
EUVD-2026-87663- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-gqg5-5gw3-54pq
8.7
Hugo versions from v0.161.0 through v0.165.0 run Node.js tools (css.PostCSS, css.TailwindCSS, js...
Hugo versions from v0.161.0 through v0.165.0 run Node.js tools (css.PostCSS, css.TailwindCSS, js.Babel) under the Node.js permission model to restrict file system reads to the project directory and configured mounts. Because the Node.js permission model validates only the lexical path and follows symbolic links that point outside the allowed set, Hugo did not detect symlinks escaping the sandbox. An attacker who can contribute content to a Hugo project (for example via a pull request) can commit a symlink such as assets/css/x.css -> /etc/passwd together with a PostCSS plugin that reads it, allowing any file readable by the Hugo build process to be disclosed and potentially embedded in the published site. This affects builds using the default security configuration; projects that do not invoke Node.js tools are unaffected. Fixed in v0.166.0, which scans allowed paths and fails the build when a symbolic link resolves outside them.
- Record
GHSA-gqg5-5gw3-54pq- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/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
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-59
- Updated
- 2026-11-02
NVD
8.7
Hugo versions from v0.161.0 through v0.165.0 run Node.js tools (css.PostCSS, css.TailwindCSS, js.Babel) under the Node.js permission model to restrict file system reads to the project directory and configured mounts. Because the Node.js permission model validates only the lexical path and follows symbolic links that point outside the allowed set, Hugo did not detect symlinks escaping the sandbox. An attacker who can contribute content to a Hugo project (for example via a pull request) can commit a symlink such as assets/css/x.css -> /etc/passwd together with a PostCSS plugin that reads it, allowing any file readable by the Hugo build process to be disclosed and potentially embedded in the published site. This affects builds using the default security configuration; projects that do not invoke Node.js tools are unaffected. Fixed in v0.166.0, which scans allowed paths and fails the build when a symbolic link resolves outside them.
- Record
CVE-2026-100690- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/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
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-59
- Updated
- 2026-11-02
OSV
8.7
Hugo v0.161.0 to v0.165.0 Arbitrary File Read via Symlinks
Hugo versions from v0.161.0 through v0.165.0 run Node.js tools (css.PostCSS, css.TailwindCSS, js.Babel) under the Node.js permission model to restrict file system reads to the project directory and configured mounts. Because the Node.js permission model validates only the lexical path and follows symbolic links that point outside the allowed set, Hugo did not detect symlinks escaping the sandbox. An attacker who can contribute content to a Hugo project (for example via a pull request) can commit a symlink such as assets/css/x.css -> /etc/passwd together with a PostCSS plugin that reads it, allowing any file readable by the Hugo build process to be disclosed and potentially embedded in the published site. This affects builds using the default security configuration; projects that do not invoke Node.js tools are unaffected. Fixed in v0.166.0, which scans allowed paths and fails the build when a symbolic link resolves outside them.
- Record
CVE-2026-100690- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-59
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-100690
8.7
Hugo versions from v0.161.0 through v0.165.0 run Node.js tools (css.PostCSS, css.TailwindCSS, js.Babel) under the Node.js permission model to restrict file system reads to the project directory and configured mounts. Because the Node.js permission model validates only the lexical path and follows symbolic links that point outside the allowed set, Hugo did not detect symlinks escaping the sandbox. An attacker who can contribute content to a Hugo project (for example via a pull request) can commit a symlink such as assets/css/x.css -> /etc/passwd together with a PostCSS plugin that reads it, allowing any file readable by the Hugo build process to be disclosed and potentially embedded in the published site. This affects builds using the default security configuration; projects that do not invoke Node.js tools are unaffected. Fixed in v0.166.0, which scans allowed paths and fails the build when a symbolic link resolves outside them.
- Record
DEBIAN-CVE-2026-100690- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/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-100690
8.7
Hugo versions from v0.161.0 through v0.165.0 run Node.js tools (css.PostCSS, css.TailwindCSS, js.Babel) under the Node.js permission model to restrict file system reads to the project directory and configured mounts. Because the Node.js permission model validates only the lexical path and follows symbolic links that point outside the allowed set, Hugo did not detect symlinks escaping the sandbox. An attacker who can contribute content to a Hugo project (for example via a pull request) can commit a symlink such as assets/css/x.css -> /etc/passwd together with a PostCSS plugin that reads it, allowing any file readable by the Hugo build process to be disclosed and potentially embedded in the published site. This affects builds using the default security configuration; projects that do not invoke Node.js tools are unaffected. Fixed in v0.166.0, which scans allowed paths and fails the build when a symbolic link resolves outside them.
- Record
UBUNTU-CVE-2026-100690- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
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-100690 is a high vulnerability (CVSS 8.7) 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.36%, the 29th percentile. Fixed in hugo 0.166.0-1.
References
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
nvd.nist.gov/vuln/detail/CVE-2026-100690
github.com/advisories/GHSA-gqg5-5gw3-54pq
github.com/CVEProject/cvelistV5/tree/main/cves/2026/100xxx/CVE-2026-100690.json
security-tracker.debian.org/tracker/CVE-2026-100690
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
bugzilla.redhat.com/show_bug.cgi?id=2541895
cve.org/CVERecord?id=CVE-2026-100691
nvd.nist.gov/vuln/detail/CVE-2026-100691
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
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-100690