CVE-2026-100692 json
Hugo before v0.166.0 Path Traversal via Symlinked Mount Roots
published 2026-09-26 43 d ago modified 2026-09-29 40 d ago also EUVD-2026-87665
- cvss
- 7.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 36%
- public exploits
- 0
- none known
Summary
Hugo is a static site generator. In versions after v0.123.0 and before v0.166.0, Hugo's symlink confinement checks stopped at the mount root itself, so a theme or module checked into themes/ (or a vendored module) could contain a symlink at a mount root (for example themes/mytheme/assets -> /some/dir/outside). Files behind such a symlink were readable during a site build through resources.Get, resources.Match and similar functions, and could be published to public/ via static mounts, bypassing the rule that theme and module mount sources must be local paths. Modules fetched via Go modules are not affected because Go module zips cannot contain symlinks, and this is not an escalation for the main project, which may already mount absolute paths by configuration. Fixed in v0.166.0, where symlinked mount roots and symlinked directories between the mount root and the module directory are treated as non-existent for all modules. As a workaround, inspect themes/ and vendored modules for symlinks at mount roots before building, or replace symlinks with explicit mounts.
Patch / fix
- gohugoio hugo 0.166.0
- hugo Debian 14 0.166.0-1
debian advisories DEBIAN-CVE-2026-100692
- hugo hummingbird 1 0.166.0-0.1.hum1
red hat advisories RHSA-2026:66266
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-100692 updated cvss 5.5
github.com/gohugoio/hugo: Hugo: Information disclosure via symlinked mount roots
-
Red Hat Enterprise Linux 10 grafana 12.4.3-2.el10affected: workaround, no fix available “Inspect checked-in themes and vendored modules for symlinks at mount roots before building. Build untrusted content in an isolated environment without access to sensitive host files.”
-
Red Hat Hardened Images hugo 0.166.0-0.1.hum1fixed: vendor fix “Inspect checked-in themes and vendored modules for symlinks at mount roots before building. Build untrusted content in an isolated environment without access to sensitive host files.” RHSA-2026:66266
-
Red Hat Hardened Images grafana13.1 13.1.6-0.3.hum1, grafana13.2 13.2.1-0.6.hum1, grafana12.4 12.4.10-0.7.hum1not affected: component not present
-
Red Hat OpenShift GitOps openshift-gitops-1/argocd-rhel8, openshift-gitops-1/argocd-rhel9 Red Hat OpenStack Platform 18.0 rhoso-operators/openstack-operator-bundlenot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 41 d ago
Exploit prediction
0.42% chance of exploitation in the next 30 days, higher than 36% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 8.7 | 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 |
| CNA | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
| CNA | 4.0 | 8.7 | 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 |
Affected products
- gohugoio hugo
Classification
- Weakness
-
- CWE-59 Improper Link Resolution Before File Access
References
-
github.com
/gohugoio/hugo/security/advisories/GHSA-797m-7j5g-3rpr
vendor-advisory
-
vulncheck.com
/advisories/hugo-before-0.166.0-path-traversal-via-symlinked-mount-roots
third-party-advisory
Sources
- CVE List CVE-2026-100692
- NVD CVE-2026-100692
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.