What’s Vulnerable › Vulnerabilities
CVE-2026-58403: Hugo symlink confinement bypass in os.ReadFile
- Severity: medium (CVSS 6.5 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.5% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2026-07-06 · updated 2026-10-25
- Weakness: CWE-59
Description
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.
Affected products
- gohugoio hugo: from 0.123.0 before 0.163.1 — fixed in 0.163.1
How to fix
Upgrade to a fixed version: gohugoio hugo 0.163.1. Check the vendor advisory for mitigations.
References
- https://github.com/gohugoio/hugo/commit/cf9c8f93ca2a2838ce378f9e36d052ac2f79e229
- https://github.com/gohugoio/hugo/pull/15020
- https://github.com/gohugoio/hugo/releases/tag/v0.163.1
- https://github.com/gohugoio/hugo/security/advisories/GHSA-c3wq-j5vh-68rc
Get alerted when CVE-2026-58403 or the next vulnerability affects your stack