CVE-2026-58403

Source
https://cve.org/CVERecord?id=CVE-2026-58403
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-58403.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-58403
Aliases
Downstream
Published
2026-07-06T19:25:45.971Z
Modified
2026-07-09T04:02:35.999862903Z
Severity
  • 5.9 (Medium) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N CVSS Calculator
Summary
Hugo symlink confinement bypass in os.ReadFile
Details

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.

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/58xxx/CVE-2026-58403.json",
    "cwe_ids": [
        "CWE-59"
    ],
    "cna_assigner": "GitHub_M"
}
References

Affected packages

Git / github.com/gohugoio/hugo

Affected ranges

Type
GIT
Repo
https://github.com/gohugoio/hugo
Events
Database specific
{
    "cpe": "cpe:2.3:a:gohugo:hugo:*:*:*:*:*:*:*:*",
    "source": [
        "CPE_RANGE",
        "REFERENCES"
    ],
    "extracted_events": [
        {
            "introduced": "0.123.0"
        },
        {
            "fixed": "0.163.1"
        }
    ]
}

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-58403.json"