{"id":"JLSEC-2026-795","summary":"Hugo: security.http.urls allow-list bypass via HTTP redirects","details":"**Commit:** [86fbb0f7a8](https://github.com/gohugoio/hugo/commit/86fbb0f7a8) — _security: Validate redirects against security.http.urls_\n**Affected versions:** v0.91.0 (when `security.http.urls` was introduced) through v0.161.1.\n**Fixed in:** v0.162.0.\n**Severity:** Only relevant for sites that rely on `security.http.urls` as a trust boundary — e.g. CI builds that fetch remote resources but want to constrain which hosts can be reached. Not an issue if you fully trust every URL passed to `resources.GetRemote`.\n\n**Description.** `resources.GetRemote` enforces `security.http.urls` on the URL it is called with, but until v0.162.0 it did not re-validate intermediate URLs on HTTP 3xx redirects. An allowed server (or an attacker controlling its DNS or response) could therefore redirect the request to a host that the policy was meant to forbid — for example, `http://localhost/` or an internal IP — and Hugo would fetch from the redirected target. The same bypass also lifted any host-shape restriction the operator had put in place.\n\n**Mitigation.** v0.162.0 installs a `CheckRedirect` on the HTTP client used by `resources.GetRemote` that re-runs `security.http.urls` on every redirect target and caps the redirect chain at 10 hops. No configuration change is required.","modified":"2026-07-25T03:50:09.328760554Z","published":"2026-07-25T03:41:43.685Z","upstream":["CVE-2026-50134","EUVD-2026-41916","GHSA-vxgm-5rmg-5w8g"],"database_specific":{"license":"CC-BY-4.0","sources":[{"published":"2026-07-06T20:16:37.197Z","url":"https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2026-50134","html_url":"https://nvd.nist.gov/vuln/detail/CVE-2026-50134","database_specific":{"status":"Analyzed"},"id":"CVE-2026-50134","imported":"2026-07-24T13:46:36.669Z","modified":"2026-07-08T03:08:10.280Z"},{"imported":"2026-07-24T13:46:39.415Z","modified":"2026-06-16T19:22:40Z","published":"2026-06-16T19:22:37Z","url":"https://api.github.com/advisories/GHSA-vxgm-5rmg-5w8g","html_url":"https://github.com/advisories/GHSA-vxgm-5rmg-5w8g","id":"GHSA-vxgm-5rmg-5w8g"},{"url":"https://euvdservices.enisa.europa.eu/api/enisaid?id=EUVD-2026-41916","html_url":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2026-41916","id":"EUVD-2026-41916","imported":"2026-07-24T13:46:37.703Z","modified":"2026-07-07T16:57:36Z","published":"2026-07-06T19:42:49Z"}]},"references":[{"type":"WEB","url":"https://github.com/advisories/GHSA-vxgm-5rmg-5w8g"},{"type":"WEB","url":"https://github.com/gohugoio/hugo/commit/86fbb0f7a8bbb93e2e916390de9e5a4f24bf9f50"},{"type":"WEB","url":"https://github.com/gohugoio/hugo/releases/tag/v0.162.0"},{"type":"WEB","url":"https://github.com/gohugoio/hugo/security/advisories/GHSA-vxgm-5rmg-5w8g"}],"affected":[{"package":{"name":"Hugo_jll","ecosystem":"Julia","purl":"pkg:julia/Hugo_jll?uuid=c8420254-0ddf-5525-a2d3-3ad9242def7d"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"0.163.3+0"}]}],"database_specific":{"source":"https://github.com/JuliaLang/SecurityAdvisories.jl/tree/generated/osv/2026/JLSEC-2026-795.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N"},{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X"}],"credits":[{"name":"unknownhad","contact":["https://github.com/unknownhad"],"type":"ANALYST"}]}