CVE-2026-100692
Received Received - Intake

Symlink Bypass in Hugo Static Site Generator

Vulnerability report for CVE-2026-100692, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-26

Last updated on: 2026-09-26

Assigner: VulnCheck

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 Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-26
Last Modified
2026-09-26
Generated
2026-09-26
AI Q&A
2026-09-26
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
go_hugo hugo From 0.123.0 (exc) to 0.166.0 (exc)
gohugoio hugo From 0.166.0 (exc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-59 The product attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

Hugo versions after v0.123.0 and before v0.166.0 had a flaw in symlink confinement checks. A theme or module with a symlink at its mount root (e.g., themes/mytheme/assets pointing to an external directory) could expose files outside the intended directory during site builds. Functions like resources.Get and resources.Match could read these files, and static mounts could publish them to the public folder, bypassing local path restrictions.

Detection Guidance

Inspect themes/ and vendored modules for symlinks at mount roots before building. Check for symlinks in Hugo module directories using commands like 'find themes/ -type l' or 'find . -name "*.symlink"'.

Impact Analysis

This vulnerability could allow unauthorized access to sensitive files outside the Hugo project directory. Attackers might read restricted files during site builds or publish them publicly if configured for static mounts. It primarily affects users relying on themes or modules with symlinks at mount roots.

Mitigation Strategies

Upgrade Hugo to version v0.166.0 or later. As a temporary workaround, replace symlinks with explicit mounts or remove suspicious symlinks in themes/ and vendored modules.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-100692. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart