Description
Gotenberg is a Docker-powered stateless API for PDF files. In 8.32.0 and earlier, the IsPublicIP function in pkg/gotenberg/outbound.go does not reject the 2002::/16 6to4 prefix, the 64:ff9b::/96 and 64:ff9b:1::/48 NAT64 prefixes, the fec0::/10 deprecated site-local prefix, Teredo, and other transition prefixes that can embed or route to non-public IPv4 destinations. The addr.Unmap operation only handles IPv4-mapped IPv6 addresses, so a crafted DNS AAAA record can cause the outbound HTTP client to treat an address wrapping an internal destination such as 169.254.169.254 as public. An unauthenticated attacker can use a conversion route with WithDenyPrivateIPs enabled to reach cloud metadata services, and the Chromium URL conversion route can return the internal response as a PDF, potentially exposing cloud credentials. Exploitation requires a deployment whose host routes the relevant IPv6 prefix, such as a dual-stack or NAT64-enabled environment. This issue is fixed in version 8.33.0.
Published: 2026-08-19
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

Gotenberg, a Docker‑powered stateless API, contains a flaw in versions 8.32.0 and earlier that fails to flag several IPv6 transition prefixes as private. The IsPublicIP logic incorrectly treats prefixes such as 2002::/16 6to4, 64:ff9b::/96 NAT64, 64:ff9b:1::/48, fec0::/10 site‑local, Teredo, and other similar addresses as public. Because the Unmap routine only removes IPv4‑mapped IPv6 addresses, an attacker can craft a DNS AAAAA record that resolves to a wrapped internal address like 169.254.169.254. The outbound HTTP client then believes the destination is public and performs a lookup using the WithDenyPrivateIPs conversion route. If the request passes through the Chromium URL conversion route, the internal response is returned as a PDF, exposing cloud metadata services and credentials. This bypass is only possible when the host routes the relevant IPv6 prefixes, such as in dual‑stack or NAT64 networks. The issue is fixed in the 8.33.0 release.

Affected Systems

Any deployment of Gotenberg 8.32.0 or earlier is affected. The issue is confined to the gotenberg:gotenberg container image. Upgrading to version 8.33.0 or later remedies the problem, as the maintainers amended the IsPublicIP logic to block the offending IPv6 prefixes.

Risk and Exploitability

The CVSS score of 7.5 categorizes this vulnerability as high severity. The EPSS score of < 1% indicates that the probability of exploitation is very low, but it is not negligible. The vulnerability is not listed in the CISA KEV catalog. Exploitation requires an environment where the host routes the affected IPv6 transition prefixes, typically a dual‑stack or NAT64 deployment, and an attacker who can inject a crafted DNS AAAAA record that maps to a reserved internal address. The likely attack vector is remote network access that triggers the outbound HTTP client to follow a conversion route to cloud metadata services. Although the flaw does not enable arbitrary code execution, it allows an unauthenticated attacker to read sensitive credentials from internal metadata endpoints.

Generated by OpenCVE AI on August 20, 2026 at 15:41 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Gotenberg to version 8.33.0 or later to receive the fixed IsPublicIP logic.
  • If immediate upgrade is not possible, disable the WithDenyPrivateIPs conversion route so that even crafted DNS AAAAA records are not treated as public addresses.
  • Restrict the host’s routing of 6to4, NAT64, and other transition prefixes so internal broadcast addresses are not reachable through the library’s outbound HTTP client.

Generated by OpenCVE AI on August 20, 2026 at 15:41 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-86m8-88fq-xfxp Gotenberg has an SSRF deny-list bypass in IsPublicIP via IPv6 6to4 / NAT64 / site-local prefixes
History

Wed, 19 Aug 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 19 Aug 2026 16:15:00 +0000

Type Values Removed Values Added
First Time appeared Gotenberg
Gotenberg gotenberg
Vendors & Products Gotenberg
Gotenberg gotenberg

Wed, 19 Aug 2026 14:45:00 +0000

Type Values Removed Values Added
Description Gotenberg is a Docker-powered stateless API for PDF files. In 8.32.0 and earlier, the IsPublicIP function in pkg/gotenberg/outbound.go does not reject the 2002::/16 6to4 prefix, the 64:ff9b::/96 and 64:ff9b:1::/48 NAT64 prefixes, the fec0::/10 deprecated site-local prefix, Teredo, and other transition prefixes that can embed or route to non-public IPv4 destinations. The addr.Unmap operation only handles IPv4-mapped IPv6 addresses, so a crafted DNS AAAA record can cause the outbound HTTP client to treat an address wrapping an internal destination such as 169.254.169.254 as public. An unauthenticated attacker can use a conversion route with WithDenyPrivateIPs enabled to reach cloud metadata services, and the Chromium URL conversion route can return the internal response as a PDF, potentially exposing cloud credentials. Exploitation requires a deployment whose host routes the relevant IPv6 prefix, such as a dual-stack or NAT64-enabled environment. This issue is fixed in version 8.33.0.
Title Gotenberg: SSRF deny-list bypass in IsPublicIP via IPv6 6to4 / NAT64 / site-local prefixes
Weaknesses CWE-184
CWE-918
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:L/A:N'}


Subscriptions

Gotenberg Gotenberg
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-19T18:41:18.075Z

Reserved: 2026-05-13T06:54:34.220Z

Link: CVE-2026-45741

cve-icon Vulnrichment

Updated: 2026-08-19T18:40:55.380Z

cve-icon NVD

Status : Received

Published: 2026-08-19T15:17:05.023

Modified: 2026-08-19T19:17:17.173

Link: CVE-2026-45741

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-20T15:45:03Z

Weaknesses
  • CWE-184

    Incomplete List of Disallowed Inputs

  • CWE-918

    Server-Side Request Forgery (SSRF)