Skip to main content
← All vulnerabilities
CVE-2026-58403GO-2026-5309GHSA-C3WQ-J5VH-68RC

Hugo symlink confinement bypass in os.ReadFile

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 0.163.1
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: partial

Summary

Hugo is a static site generator. From v0.123.0 through v0.163.0, Hugo's virtual filesystem is designed so that files under a mount cannot reach outside the mount tree, but a regression caused RootMappingFs.statRoot to call Stat, which follows symlinks, instead of Lstat, so a direct os.ReadFile "somefile" where somefile was a symlink pointing outside the mount would return the target's contents. This effectively let a symlink planted inside a theme or local mount read arbitrary files reachable to the user running hugo. This issue is fixed in v0.163.1.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • gohugoio hugo

    From 0.123.0 · fixed in 0.163.1

  • github.com/gohugoio/hugoGo

    From 0.123.0 · fixed in 0.163.1

References 4

GitHub · gohugoio/hugo