CVE-2026-89258: 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.165.0, symlinks in parent directories were not dropped during direct resource lookups, allowing path confinement to be bypassed. An attacker who can place — or who convinces a site author to place — a symlink inside a mounted directory (for example, in a locally vendored theme under themes/) can cause functions that perform direct lookups, such as resources.Get and os.ReadFile, to follow that symlink and read files outside the intended project boundaries, disclosing their contents in the built site. Themes mounted as Go modules fetched from GitHub have symlinks stripped on download and are not affected, and multi-directory walks (e.g. content/asset walking) are not affected. This issue is an incomplete-fix follow-up to GHSA-c3wq-j5vh-68rc and GHSA-fw87-fv5r-9fpw; it is fixed in v0.165.0.
AI Analysis
Technical Summary
Hugo versions after v0.123.0 and before v0.165.0 improperly handle symlinks in parent directories during direct resource lookups such as resources.Get and os.ReadFile. This improper link resolution allows an attacker who can place or convince a site author to place a symlink inside a mounted directory to cause these functions to follow the symlink and read files outside the intended project boundaries. This leads to unintended disclosure of file contents in the built site. The vulnerability is a follow-up to previous incomplete fixes and is resolved in Hugo v0.165.0. Themes mounted as Go modules fetched from GitHub are unaffected because symlinks are stripped on download, and multi-directory walks like content/asset walking are not vulnerable.
Potential Impact
An attacker capable of placing or influencing the placement of a symlink inside a mounted directory can cause Hugo to disclose arbitrary file contents outside the project boundaries in the generated static site. This can lead to sensitive information leakage. The vulnerability does not require privileges or user interaction and has a critical severity with a CVSS 4.0 score of 9.3.
Mitigation Recommendations
Upgrade Hugo to version 0.165.0 or later, where this vulnerability is fixed. No other mitigation is required as the fix addresses the improper link resolution issue. Themes fetched as Go modules from GitHub are not affected due to symlink stripping.
CVE-2026-89258: 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.165.0, symlinks in parent directories were not dropped during direct resource lookups, allowing path confinement to be bypassed. An attacker who can place — or who convinces a site author to place — a symlink inside a mounted directory (for example, in a locally vendored theme under themes/) can cause functions that perform direct lookups, such as resources.Get and os.ReadFile, to follow that symlink and read files outside the intended project boundaries, disclosing their contents in the built site. Themes mounted as Go modules fetched from GitHub have symlinks stripped on download and are not affected, and multi-directory walks (e.g. content/asset walking) are not affected. This issue is an incomplete-fix follow-up to GHSA-c3wq-j5vh-68rc and GHSA-fw87-fv5r-9fpw; it is fixed in v0.165.0.
CVSS v4.0
Score 9.3critical
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.165.0 improperly handle symlinks in parent directories during direct resource lookups such as resources.Get and os.ReadFile. This improper link resolution allows an attacker who can place or convince a site author to place a symlink inside a mounted directory to cause these functions to follow the symlink and read files outside the intended project boundaries. This leads to unintended disclosure of file contents in the built site. The vulnerability is a follow-up to previous incomplete fixes and is resolved in Hugo v0.165.0. Themes mounted as Go modules fetched from GitHub are unaffected because symlinks are stripped on download, and multi-directory walks like content/asset walking are not vulnerable.
Potential Impact
An attacker capable of placing or influencing the placement of a symlink inside a mounted directory can cause Hugo to disclose arbitrary file contents outside the project boundaries in the generated static site. This can lead to sensitive information leakage. The vulnerability does not require privileges or user interaction and has a critical severity with a CVSS 4.0 score of 9.3.
Mitigation Recommendations
Upgrade Hugo to version 0.165.0 or later, where this vulnerability is fixed. No other mitigation is required as the fix addresses the improper link resolution issue. Themes fetched as Go modules from GitHub are not affected due to symlink stripping.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- VulnCheck
- Date Reserved
- 2026-09-11T10:51:59.215Z
- Cvss Version
- 4.0
- State
- PUBLISHED
Threat ID: 6aa3e6e291cc7f38481866c9
Added to database: 09/11/2026, 11:32:50 UTC
Last enriched: 09/11/2026, 11:46:57 UTC
Last updated: 09/11/2026, 16:04:21 UTC
Views: 17
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.