Skip to main content

Hugo CVE-2026-89258

| EUVDEUVD-2026-76070 CRITICAL
Improper Link Resolution Before File Access (CWE-59)
2026-09-11 VulnCheck GHSA-8jx9-m62j-qx3c
Critical
Disputed · 9.3 Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft malicious theme with out-of-bounds symlink
  2. Delivery
    Author vendors theme locally under themes/
  3. Exploit
    Hugo build calls resources.Get/os.ReadFile
  4. Execution
    Symlink followed past project boundary
  5. Persist
    Target file contents embedded in built site
  6. Impact
    Sensitive data published

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Symlink resolution safety
Exploitation Conditions

Requires an attacker to place, or to convince the site author to place, a symlink inside a directory mounted into the Hugo project (for example a locally vendored theme under themes/), and requires the site to use a direct-lookup function such as resources.Get or os.ReadFile against that path. Exploitation is limited by several factors: themes consumed as Go modules fetched from GitHub have symlinks stripped on download and are NOT exploitable; multi-directory walks (e.g. content/asset walking) are NOT affected; the affected version range is strictly after v0.123.0 and before v0.165.0; and the payoff is limited to disclosure of file contents that end up in the built output.

Impact

The published CVSS 4.0 vector (9.3, AV:N/AC:L/PR:N/UI:N with VC:H/VI:H/VA:H) overstates real-world impact: the described behavior is file-content disclosure into the built site, which is a confidentiality issue - there is no described integrity or availability impact, so VI:H/VA:H appear inflated. Exploitation is also not truly zero-prerequisite: the attacker must place, or convince a site author to include, a symlink inside a mounted directory, which in practice means a malicious or compromised locally-vendored theme or resource tree rather than a remote unauthenticated hit against a default install. There is no CISA KEV listing and no public exploit identified at time of analysis, so this is a real but conditional supply-chain-style risk rather than an internet-facing mass-exploitation threat; teams building sites from untrusted or third-party themes (any organization, from a large enterprise to a mid-sized municipal IT team, that vendors themes locally) should still patch promptly because leaked file contents become publicly published in the generated site. The mitigating fact that GitHub Go-module themes are immune meaningfully narrows the exposed population.

Exploit ScenarioDerived

An attacker publishes an attractive Hugo theme that a site author downloads and vendors locally under themes/; the theme contains a symlink pointing to a sensitive file such as ../../.env or /etc/passwd. When the author runs hugo to build the site, resources.Get follows the symlink, reads the file, and embeds its contents into a generated page that is then published publicly. No public exploit code is currently identified.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 11, 2026

Arbitrary file disclosure in the Hugo static site generator (versions after v0.123.0 and before v0.165.0) lets an attacker read files outside the intended project boundary by planting a symlink in a mounted directory. Because parent-directory symlinks were not dropped during direct resource lookups, functions like resources.Get and os.ReadFile follow the symlink and embed the target file's contents into the built site. Reported by VulnCheck; no public exploit identified at time of analysis, and this is an incomplete-fix follow-up to two prior advisories (GHSA-c3wq-j5vh-68rc and GHSA-fw87-fv5r-9fpw).

RemediationAI

Vendor-released patch: upgrade Hugo to v0.165.0 or later, which drops symlinks in parent directories during direct resource lookups. Until you can upgrade, only build sites from trusted sources: prefer themes consumed as Go modules fetched from GitHub (their symlinks are stripped on download and are not affected) over locally vendored themes under themes/, and audit any locally mounted directories for symlinks that resolve outside the project root before running a build (for example scan the working tree with find . -type l). Treat build environments handling untrusted or third-party themes as the primary exposure and rebuild affected sites after patching, since any already-leaked file contents may have been published. Refer to GHSA-vrv5-r5rf-6v4j for authoritative guidance.

Affected VersionsENISA

hugo 0 <0.165.0

Affected Packages

euvd hugo fix: 0.165.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Hugo (CPE cpe:2.3:a:gohugoio:hugo) is a widely used Go-based static site generator that assembles sites from content, themes, and mounted resource directories. The root cause is CWE-59 (link following / improper link resolution): during direct resource lookups Hugo canonicalized the final path component but failed to reject symlinks in parent directories, so path confinement meant to keep lookups inside the project could be bypassed. When a symlink inside a mounted directory (for example a locally vendored theme under themes/) points outside the project, direct-lookup APIs such as resources.Get and os.ReadFile resolve through it and read the external target. Notably, themes mounted as Go modules fetched from GitHub have symlinks stripped on download and are unaffected, and multi-directory walks (e.g. content/asset walking) already dropped symlinks and are not affected - only the direct-lookup code path is vulnerable.

Know when Hugo gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Sources disagree (Medium–Critical)
Vendor (VulnCheck) PRIMARY 9.3 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 6.5 MEDIUM

Exploitation depends on the site author incorporating an attacker-controlled symlink (UI:R); impact is file-content disclosure only, so C:H with I:N/A:N.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
SUSE HIGH
Red Hat 6.3 MEDIUM

vuln.today treats the vendor’s rating as authoritative. A higher third-party CVSS (e.g. CISA-ADP) is shown for transparency but does not drive the headline severity.

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 11, 2026 - 13:01 EUVD
CVE Published
Sep 11, 2026 - 11:15 cve.org
CRITICAL 9.3

DescriptionCVE.org

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.

Technical POC Analysis

The flaw is a symlink confinement bypass, CWE-59 (link following).

Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.

Executive ViewAI

Why It Matters

Hugo static site generator versions 0.124.0 through 0.164.x contain a critical arbitrary file disclosure vulnerability allowing attackers to read sensitive files outside the project directory through symlink manipulation. Organizations using affected Hugo versions risk exposing configuration files, API credentials, and private data embedded in published static sites. This represents a direct confidentiality threat to any team deploying Hugo-based websites.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include: enforce strict filesystem permissions on all project mounted directories to prevent unauthorized symlink creation; audit and manually remove all symbolic links from the project directory structure; disable resources.Get and os.ReadFile template functions if not essential to site generation; maintain all configuration and secrets outside the Hugo project directory with restricted access controls; implement cryptographic signing or integrity verification of build artifacts; establish monitoring of Hugo's GitHub and security channels for patch announcements.

Threat Intelligence Overview

EPSS Score
0.3%
Top 76% exploitable
Prevalence
High
one of the most widely used static site generators among developers
Social Media
3
Sightings
Data Quality
5 sources
Confidence: Medium
EUVD NVD CVE.org EPSS Vulnrichment Vendor CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Total

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

More in Hugo

View all
CVE-2020-26284 HIGH POC
8.5 Dec 21

Hugo is a fast and Flexible Static Site Generator built in Go. Rated high severity (CVSS 8.5), this vulnerability is rem

CVE-2026-89259 CRITICAL
9.3 Sep 11

Sandbox/permission-restriction bypass in the Hugo static site generator (versions after v0.43, fixed in v0.165.0) lets a

CVE-2026-75926 CRITICAL
9.3 Aug 18

Arbitrary command execution in Hugo 0.162.0 through 0.164.x occurs when the static site generator builds a project whose

CVE-2026-100692 HIGH
8.7 Sep 26

Symlink-following flaws in Hugo's theme and module mount confinement allow files outside a project's mount roots to be r

CVE-2026-100690 HIGH
8.7 Sep 26

Arbitrary file read in Hugo v0.161.0 through v0.165.0 allows an attacker who can contribute content to a Hugo project -

CVE-2026-100693 HIGH
8.6 Sep 26

Case-sensitivity bypass in Hugo's security.http.urls IP-literal deny rule lets builds running v0.162.0 through v0.165.x

CVE-2026-10582 HIGH
8.3 Aug 24

Server-side request forgery in Hugo static site generator (versions 0.91.0 through 0.165.0) allows an attacker who can s

CVE-2026-109596 MEDIUM
6.7 Oct 12

Local file disclosure in Hugo v0.162.0 through v0.166.x allows an attacker-controlled theme or module to place a symlink

CVE-2026-109595 MEDIUM
6.7 Oct 12

Path traversal in Hugo's asset pipeline lets a malicious theme or module bundle files from outside the project root into

CVE-2026-109574 MEDIUM
6.7 Oct 12

Path traversal in Hugo's css.Sass transpilation pipeline (all versions before v0.167.0) lets a malicious theme or module

CVE-2026-58403 MEDIUM
5.9 Jul 06

Symlink traversal in Hugo's virtual filesystem (v0.123.0-v0.163.0) allows a symlink planted inside a theme or local moun

CVE-2026-58402 MEDIUM
5.1 Jul 06

Stored XSS in Hugo's default code-block renderer allows an attacker with Markdown contribution rights to inject arbitrar

Vendor StatusVendor

SUSE

Severity: Important

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy