CVE-2026-100692: Improper Link Resolution Before File Access ('Link Following') in gohugoio hugo
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.
AI Analysis
Technical Summary
Hugo versions after v0.123.0 and before v0.166.0 did not properly enforce symlink confinement beyond the mount root, allowing symlinks in themes/ or vendored modules at mount roots to point outside the intended directory tree. This enabled reading and publishing of files outside local paths during site builds via functions like resources.Get and resources.Match. Modules fetched via Go modules are not affected due to the absence of symlinks in module zips. The issue was fixed in v0.166.0 by treating symlinked mount roots and intermediate symlinked directories as non-existent for all modules. A workaround is to inspect and remove symlinks at mount roots before building or replace them with explicit mounts.
Potential Impact
An attacker or malicious theme/module could include symlinks at mount roots to expose files outside the intended local directories during site builds. This could lead to unintended disclosure of files and publishing of unauthorized content to the public directory. The vulnerability does not escalate privileges within the main project if absolute paths are already mounted by configuration. Modules fetched via Go modules are not vulnerable.
Mitigation Recommendations
A fix is available in Hugo version 0.166.0. Users should upgrade to v0.166.0 or later to fully mitigate this vulnerability. As a temporary workaround, inspect themes/ and vendored modules for symlinks at mount roots before building and remove or replace them with explicit mounts.
CVE-2026-100692: Improper Link Resolution Before File Access ('Link Following') in gohugoio hugo
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.
CVSS v4.0
Score 8.7high
Affected software
gohugoio
hugo
pkg:golang/github.com/gohugoio/hugoRun on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
Hugo versions after v0.123.0 and before v0.166.0 did not properly enforce symlink confinement beyond the mount root, allowing symlinks in themes/ or vendored modules at mount roots to point outside the intended directory tree. This enabled reading and publishing of files outside local paths during site builds via functions like resources.Get and resources.Match. Modules fetched via Go modules are not affected due to the absence of symlinks in module zips. The issue was fixed in v0.166.0 by treating symlinked mount roots and intermediate symlinked directories as non-existent for all modules. A workaround is to inspect and remove symlinks at mount roots before building or replace them with explicit mounts.
Potential Impact
An attacker or malicious theme/module could include symlinks at mount roots to expose files outside the intended local directories during site builds. This could lead to unintended disclosure of files and publishing of unauthorized content to the public directory. The vulnerability does not escalate privileges within the main project if absolute paths are already mounted by configuration. Modules fetched via Go modules are not vulnerable.
Mitigation Recommendations
A fix is available in Hugo version 0.166.0. Users should upgrade to v0.166.0 or later to fully mitigate this vulnerability. As a temporary workaround, inspect themes/ and vendored modules for symlinks at mount roots before building and remove or replace them with explicit mounts.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- VulnCheck
- Date Reserved
- 2026-09-26T02:37:41.037Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6ab7c9adf7a7c5410652fd5b
Added to database: 09/26/2026, 13:33:33 UTC
Last enriched: 09/26/2026, 13:47:42 UTC
Last updated: 09/27/2026, 01:57:11 UTC
Views: 15
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.