CVE-2026-89258
Wolfi vulnerability analysis and mitigation

Overview

CVE-2026-89258 is a symlink confinement bypass vulnerability in the Hugo static site generator affecting versions after v0.123.0 and before v0.165.0. The flaw allows path confinement to be bypassed when symlinks are placed in parent directories during direct resource lookups, enabling files outside the intended project boundaries to be read and disclosed in the built site. It is classified as an incomplete fix follow-up to prior advisories GHSA-c3wq-j5vh-68rc and GHSA-fw87-fv5r-9fpw. The vulnerability carries a CVSS v3.1 score of 6.3 (Medium) and a CVSS v4.0 score of 9.3 (Critical) (GitHub Advisory, Hugo Advisory).

Technical details

The root cause is improper link resolution before file access (CWE-59), where Hugo's direct resource lookup functions — specifically resources.Get and os.ReadFile — fail to drop symlinks located in parent directories, allowing them to be followed outside the project's intended file system boundaries. An attacker must be able to place, or socially engineer a site author into placing, a symlink inside a mounted directory such as a locally vendored theme under themes/. Themes fetched as Go modules from GitHub are not affected because symlinks are stripped on download, and multi-directory walks (e.g., content/asset walking) are also unaffected — only direct lookup functions are vulnerable (GitHub Advisory, Hugo Advisory).

Impact

Successful exploitation results in unauthorized disclosure of files outside the Hugo project's intended boundaries, with sensitive file contents potentially embedded directly into the built static site and exposed to anyone who accesses it. The confidentiality impact is high, as arbitrary files readable by the Hugo process (e.g., configuration files, secrets, private keys) could be exfiltrated. There is no integrity or availability impact from this vulnerability itself, but the data exposure could facilitate further attacks (GitHub Advisory).

Exploitability

There is no known public proof-of-concept exploit and no evidence of in-the-wild exploitation at the time of disclosure (GitHub Advisory). The NVD SSVC assessment notes exploitation status as "none." The attack requires either direct access to place a symlink in a mounted directory or the ability to convince a site author to do so (social engineering), which limits opportunistic exploitation. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities catalog, and no threat actor attribution has been reported.

Exploitation steps

  1. Identify a target: Locate a Hugo site project using a version between v0.123.0 and v0.165.0 that uses locally vendored themes (under themes/) rather than Go module-fetched themes.
  2. Gain write access or social engineer: Either obtain write access to the project's themes/ directory, or convince the site author to incorporate a malicious theme that contains a crafted symlink.
  3. Place a malicious symlink: Inside the mounted theme directory (e.g., themes/malicious-theme/), create a symlink in a parent directory path that points to a sensitive file outside the project root, such as themes/malicious-theme/../../.env or /etc/passwd.
  4. Trigger a direct resource lookup: Ensure the Hugo template or content references the symlinked path via resources.Get or os.ReadFile, causing Hugo to follow the symlink during the build process.
  5. Harvest disclosed content: After the site is built, retrieve the sensitive file contents from the generated static output, where they will have been embedded by Hugo during the build (GitHub Advisory, Hugo Advisory).

Indicators of compromise

  • File System: Presence of unexpected symlinks inside themes/ subdirectories or other mounted directories pointing to paths outside the project root; symlinks targeting sensitive files such as .env, config.toml, SSH keys, or system files like /etc/passwd.
  • Build Output: Sensitive file contents (credentials, private keys, system configuration data) appearing unexpectedly in Hugo's generated public/ output directory or embedded within built HTML/CSS/JS files.
  • Logs: Hugo build logs referencing file reads from paths outside the expected project directory structure during resources.Get or os.ReadFile calls.
  • Theme Integrity: Locally vendored theme directories containing symlinks, especially those introduced via third-party or untrusted theme sources (GitHub Advisory).

Mitigation and workarounds

Upgrade Hugo to v0.165.0 or later, which hardens symlink handling by dropping symlinks in parent directories during direct resource lookups (Hugo Advisory). As a workaround, avoid using locally vendored themes from untrusted sources, and audit existing themes/ directories for unexpected symlinks before building. Themes fetched as Go modules from GitHub are not affected and represent a safer alternative to local vendoring.

Community reactions

The vulnerability was credited to researcher arpitjain099 as the finder in the Hugo security advisory (Hugo Advisory). The advisory notes this is a follow-up incomplete fix to two prior Hugo symlink vulnerabilities (GHSA-c3wq-j5vh-68rc and GHSA-fw87-fv5r-9fpw), indicating a pattern of iterative hardening in Hugo's path confinement logic. No significant broader media coverage or notable social media discussion beyond automated CVE tracking feeds has been observed.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

bookworm

hugo

Affected

sid

hugo: 0.165.0-1

Fixed

trixie

hugo

Affected

SourceThis report was generated using AI

Related Wolfi vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-89259CRITICAL9.3
  • Wolfi logoWolfi
  • hugo
NoYesSep 11, 2026
CVE-2026-89258CRITICAL9.3
  • Wolfi logoWolfi
  • hugo
NoYesSep 11, 2026
CVE-2026-54174HIGH8.3
  • Wolfi logoWolfi
  • tw
NoYesSep 11, 2026
CVE-2026-49838MEDIUM5.9
  • Wolfi logoWolfi
  • cilium-cli
NoYesSep 10, 2026
CVE-2026-89092MEDIUM4.2
  • Wolfi logoWolfi
  • glibc
NoYesSep 11, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management