ubuntu-cve-2026-58404
Vulnerability from osv_ubuntu
Hugo is a static site generator. From v0.162.0 through v0.163.0, the default security.http.urls policy denies requests to loopback, internal, and cloud-metadata IPv4 literals, but the deny rule only matched dotted-decimal notation, so alternate IPv4 encodings of the same addresses, including integer, hex, or octal, passed the policy. When a template passes an untrusted or data-derived URL to resources.GetRemote and the host platform uses the cgo system resolver, these encodings resolve to the blocked address, allowing build-time server-side requests to loopback and internal services, including the cloud-metadata endpoint in hosted or CI builds; the same check is reused on redirects, so the gap also applies to each redirect hop. This issue is fixed in v0.163.1.
{
"affected": [
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "golang-github-spf13-hugo-dev",
"binary_version": "0.15+git20160206.203.ed23711-1"
},
{
"binary_name": "hugo",
"binary_version": "0.15+git20160206.203.ed23711-1"
}
]
},
"package": {
"ecosystem": "Ubuntu:16.04:LTS",
"name": "hugo",
"purl": "pkg:deb/ubuntu/hugo@0.15+git20160206.203.ed23711-1?arch=source\u0026distro=xenial"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"0.15+git20160109.147.dd1d655-1",
"0.15+git20160109.147.dd1d655-2",
"0.15+git20160128.179.5def6d9-1",
"0.15+git20160206.203.ed23711-1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "golang-github-gohugoio-hugo-dev",
"binary_version": "0.40.1-1"
},
{
"binary_name": "hugo",
"binary_version": "0.40.1-1"
}
]
},
"package": {
"ecosystem": "Ubuntu:18.04:LTS",
"name": "hugo",
"purl": "pkg:deb/ubuntu/hugo@0.40.1-1?arch=source\u0026distro=bionic"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"0.25.1-2",
"0.26-1",
"0.35-1",
"0.37.1-1",
"0.38-1",
"0.39-1",
"0.40-1",
"0.40.1-1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "hugo",
"binary_version": "0.68.3-1"
}
]
},
"package": {
"ecosystem": "Ubuntu:20.04:LTS",
"name": "hugo",
"purl": "pkg:deb/ubuntu/hugo@0.68.3-1?arch=source\u0026distro=focal"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"0.57.2-1",
"0.58.3-1",
"0.59.1-1.1",
"0.68.3-1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "hugo",
"binary_version": "0.92.2-1ubuntu0.1"
}
]
},
"package": {
"ecosystem": "Ubuntu:22.04:LTS",
"name": "hugo",
"purl": "pkg:deb/ubuntu/hugo@0.92.2-1ubuntu0.1?arch=source\u0026distro=jammy"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"0.80.0-6",
"0.89.4-2",
"0.90.0-1",
"0.90.1-1",
"0.91.0-1",
"0.91.2-1",
"0.92.0-1",
"0.92.1-1build1",
"0.92.2-1",
"0.92.2-1ubuntu0.1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "hugo",
"binary_version": "0.123.7-1ubuntu0.3+esm2"
}
]
},
"package": {
"ecosystem": "Ubuntu:Pro:24.04:LTS",
"name": "hugo",
"purl": "pkg:deb/ubuntu/hugo@0.123.7-1ubuntu0.3+esm2?arch=source\u0026distro=esm-apps/noble"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"0.113.0-3",
"0.119.0-2",
"0.120.3-1",
"0.120.4-1",
"0.121.2-1",
"0.122.0-1",
"0.123.7-1build1",
"0.123.7-1ubuntu0.1",
"0.123.7-1ubuntu0.2",
"0.123.7-1ubuntu0.2+esm1",
"0.123.7-1ubuntu0.3",
"0.123.7-1ubuntu0.3+esm1",
"0.123.7-1ubuntu0.3+esm2"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "hugo",
"binary_version": "0.131.0-1"
}
]
},
"package": {
"ecosystem": "Ubuntu:25.10",
"name": "hugo",
"purl": "pkg:deb/ubuntu/hugo@0.131.0-1?arch=source\u0026distro=questing"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"0.131.0-1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "hugo",
"binary_version": "0.154.5-1"
}
]
},
"package": {
"ecosystem": "Ubuntu:26.04:LTS",
"name": "hugo",
"purl": "pkg:deb/ubuntu/hugo@0.154.5-1?arch=source\u0026distro=resolute"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"0.131.0-1",
"0.152.2-1",
"0.153.1-3",
"0.153.2-1",
"0.154.2-2",
"0.154.3-1",
"0.154.5-1"
]
}
],
"aliases": [],
"details": "Hugo is a static site generator. From v0.162.0 through v0.163.0, the default security.http.urls policy denies requests to loopback, internal, and cloud-metadata IPv4 literals, but the deny rule only matched dotted-decimal notation, so alternate IPv4 encodings of the same addresses, including integer, hex, or octal, passed the policy. When a template passes an untrusted or data-derived URL to resources.GetRemote and the host platform uses the cgo system resolver, these encodings resolve to the blocked address, allowing build-time server-side requests to loopback and internal services, including the cloud-metadata endpoint in hosted or CI builds; the same check is reused on redirects, so the gap also applies to each redirect hop. This issue is fixed in v0.163.1.",
"id": "UBUNTU-CVE-2026-58404",
"modified": "2026-07-06T20:16:00Z",
"published": "2026-07-06T20:16:00Z",
"references": [
{
"type": "REPORT",
"url": "https://ubuntu.com/security/CVE-2026-58404"
},
{
"type": "REPORT",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-58404"
},
{
"type": "REPORT",
"url": "https://github.com/gohugoio/hugo/security/advisories/GHSA-r46f-3rpw-hxrv"
},
{
"type": "REPORT",
"url": "https://github.com/gohugoio/hugo/pull/15020"
},
{
"type": "REPORT",
"url": "https://github.com/gohugoio/hugo/commit/a00b5c72ac57afe26df6688ece3ca544a56df372"
},
{
"type": "REPORT",
"url": "https://github.com/gohugoio/hugo/releases/tag/v0.163.1"
}
],
"related": [],
"schema_version": "1.7.0",
"severity": [
{
"score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:P/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N",
"type": "CVSS_V4"
},
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:N/A:N",
"type": "CVSS_V3"
},
{
"score": "medium",
"type": "Ubuntu"
}
],
"upstream": [
"CVE-2026-58404"
]
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.