What’s Vulnerable › Vulnerabilities
CVE-2026-100692: Hugo before v0.166.0 Path Traversal via Symlinked Mount Roots
- Severity: high (CVSS 7.5 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.4% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2026-09-26 · updated 2026-09-29
- Weakness: CWE-59
Description
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.
Affected products
- gohugoio hugo: from 0.123.0 before 0.166.0 — fixed in 0.166.0
How to fix
Upgrade to a fixed version: gohugoio hugo 0.166.0. Check the vendor advisory for mitigations.
References
- https://github.com/gohugoio/hugo/security/advisories/GHSA-797m-7j5g-3rpr
- https://www.vulncheck.com/advisories/hugo-before-0.166.0-path-traversal-via-symlinked-mount-roots
Get alerted when CVE-2026-100692 or the next vulnerability affects your stack