CVE-2026-58403 Hugo symlink confinement bypass in os.ReadFile
A symlink confinement bypass in Hugo allows attackers to read arbitrary files outside the mount tree via crafted symlinks in themes or local mounts.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2026-58403?
CVE-2026-58403 is a medium-severity path traversal vulnerability in gohugoio hugo, published on 6 Jul 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Official 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.
Weakness: CWE-59
Which versions are affected by CVE-2026-58403?
3 open source packages ship an affected version, including github.com/gohugoio/hugo. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
github.com/gohugoio/hugo Go | From 0.123.0 | 0.163.1 |
github.com/gohugoio/hugo Go | From 0.123.0 | 0.163.1 |
github.com/gohugoio/hugo Go | From 0.123.0 | 0.163.1 |
Products include Gohugo Hugo.
How do I fix CVE-2026-58403?
Upgrade github.com/gohugoio/hugo to 0.163.1 or later.
Upgrade, and resolve every user-supplied path against an allowed base folder before opening it. More about Path traversal.
Is CVE-2026-58403 being exploited?
There is no known exploitation of CVE-2026-58403 in the wild and no public exploit code.
Other vulnerabilities in gohugoio hugo
- CVE-2026-75926 Hugo 0.162.0 to 0.164.x - Node Permission Model Bypass via Default TailwindCSS Child-Process Grant
- CVE-2026-100690 Hugo v0.161.0 to v0.165.0 Arbitrary File Read via Symlinks
- CVE-2026-100692 Hugo before v0.166.0 Path Traversal via Symlinked Mount Roots
- CVE-2026-100693 Hugo v0.162.0 before v0.166.0 IP-literal Deny Rule Bypass
- CVE-2020-26284 Hugo can execute a binary from the current directory on Windows
Sources
Also known as DEBIAN-CVE-2026-58403, GHSA-c3wq-j5vh-68rc, GO-2026-5309, UBUNTU-CVE-2026-58403.