CVE-2026-45741

HIGHPre-NVD 7.57.5
EchelonGraph scoreLOW confidence

Score 7.5 from GitHub Security Advisory (severity: HIGH) published 2026-05-29. the CNA's CVSS baseline 7.5; sources differ by 0.0.

Triggered by: GitHub Security Advisory CVSS
Sources: cna:github_m, epss, ghsa
7.5
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS: 0%CVSS: 7.5Exploit: NoneExposed: 0

No vendor fix yet — apply a workaround or compensating control (WAF / firewall / segmentation) and watch for a patch.

Gotenberg has an SSRF deny-list bypass in IsPublicIP via IPv6 6to4 / NAT64 / site-local prefixes

Summary

IsPublicIP in pkg/gotenberg/outbound.go incorrectly classifies IPv6 6to4 / NAT64 / deprecated site-local addresses as public IPs, allowing an unauthenticated attacker to reach internal destinations (e.g., cloud metadata services at 169.254.169.254) via a single crafted DNS AAAA record. This is a variant of CVE-2026-44430 (modelcontextprotocol/registry).

Details

IsPublicIP uses Go stdlib helpers (IsLoopback, IsPrivate, IsLinkLocalUnicast, etc.) to block internal IPs. However, these helpers do not recognize IPv6 prefixes that embed IPv4 addresses:

| Prefix | RFC | Tunnels to | |--------|-----|-----------| | 2002::/16 | RFC 3056 (6to4) | IPv4 in bits 16-47 | | 64:ff9b::/96 | RFC 6052 (NAT64 well-known) | IPv4 in low 32 bits | | 64:ff9b:1::/48 | RFC 8215 (NAT64 local-use) | IPv4 in low 32 bits | | fec0::/10 | RFC 3879 (deprecated site-local) | internal routing |

addr.Unmap() only handles ::ffff:0:0/96 (IPv4-mapped) and has no effect on these prefixes. On dual-stack or NAT64-enabled cloud hosts, the OS kernel transparently routes these addresses to their embedded internal IPv4 destinations.

Vulnerable code (pkg/gotenberg/outbound.go L53-69, commit 93d0103):

func IsPublicIP(addr netip.Addr) bool {
    addr = addr.Unmap() // only handles ::ffff:x.x.x.x
    switch {
    case addr.IsLoopback(), addr.IsPrivate(),
         addr.IsLinkLocalUnicast(), ...:
        return false
    }
    return true // 6to4/NAT64/site-local incorrectly reaches here
}

PoC

cd poc/
./build.sh   # docker build (~30s)
./run.sh     # docker run — exits with code 1 (bug detected)

Expected output: IsPublicIP(2002:a9fe:a9fe::) = true — the function returns true for 3 addresses that wrap 169.254.169.254 (AWS IMDS). Full test file available via GHSA private comment on request.

Impact

An unauthenticated attacker controlling a DNS AAAA record can tunnel gotenberg's outbound HTTP client to AWS/GCP/Azure IMDS (169.254.169.254), leaking IAM credentials. The Chromium URL convert route returns the full response as a PDF (full-read SSRF). Affects all deployments with WithDenyPrivateIPs(true) on dual-stack or NAT64-enabled hosts.

Suggested Fix

Add explicit prefix checks after addr.Unmap():

var blockedIPv6Prefixes = []netip.Prefix{
    netip.MustParsePrefix("2002::/16"),
    netip.MustParsePrefix("64:ff9b::/96"),
    netip.MustParsePrefix("64:ff9b:1::/48"),
    netip.MustParsePrefix("fec0::/10"),
}
for _, p := range blockedIPv6Prefixes {
    if p.Contains(addr) { return false }
}

CVSS v3
7.5
EG Score
7.5(low)
EG Risk
EPSS
16.6%
KEV
Not listed

Published

May 29, 2026

Last Modified

May 29, 2026

Vendor Advisories for CVE-2026-45741(1)

These vendors published their own advisory mentioning this CVE — often with vendor-specific remediation steps + affected product lists not in NVD.

Patch Availability(1)

Vendor / EcosystemFixed in / PatchReleasedSource
gogithub.com/gotenberg/gotenberg/v8ghsa

Patches are aggregated from vendor advisories (Red Hat, Microsoft, Cisco, GitHub) and package ecosystems (OSV, GHSA). Multiple rows for the same upstream release have been deduplicated.

Affected Packages

(1 across 1 ecosystem)
Go(1)
PackageVulnerable rangeFixed inDependents
github.com/gotenberg/gotenberg/v8

Weakness Classification(2)

MITRE Common Weakness Enumeration — the root-cause categories this CVE belongs to.

Data Freshness Timeline

(refreshed 1× in last 7d / 18× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

  1. 2026-07-16 01:59 UTCGHSA enrichment
  2. 2026-07-14 14:08 UTCGHSA enrichment
  3. 2026-07-11 17:33 UTCGHSA enrichment
  4. 2026-07-08 17:25 UTCGHSA enrichment
  5. 2026-07-02 19:16 UTCGHSA enrichment
  6. 2026-07-02 04:20 UTCGHSA enrichment
  7. 2026-07-01 13:55 UTCGHSA enrichment
  8. 2026-07-01 01:31 UTCGHSA enrichment
  9. 2026-06-30 01:13 UTCGHSA enrichment
  10. 2026-06-29 12:49 UTCGHSA enrichment
  11. 2026-06-28 18:27 UTCGHSA enrichment
  12. 2026-06-28 05:55 UTCGHSA enrichment
  13. 2026-06-27 17:12 UTCGHSA enrichment
  14. 2026-06-27 04:40 UTCGHSA enrichment
  15. 2026-06-26 16:16 UTCGHSA enrichment
  16. 2026-06-25 18:48 UTCGHSA enrichment
  17. 2026-06-25 06:24 UTCGHSA enrichment
  18. 2026-06-24 15:21 UTCGHSA enrichment
  19. 2026-06-18 22:47 UTCGHSA enrichment
  20. 2026-06-18 10:23 UTCGHSA enrichment
  21. 2026-06-17 17:43 UTCGHSA enrichment
  22. 2026-06-17 03:35 UTCGHSA enrichment
  23. 2026-06-16 15:11 UTCGHSA enrichment
  24. 2026-06-16 00:49 UTCGHSA enrichment
  25. 2026-06-15 12:25 UTCGHSA enrichment
Show 33 more
  1. 2026-06-14 23:41 UTCGHSA enrichment
  2. 2026-06-14 23:18 UTCEPSS rescore
  3. 2026-06-14 11:16 UTCGHSA enrichment
  4. 2026-06-13 23:00 UTCEPSS rescore
  5. 2026-06-13 22:53 UTCGHSA enrichment
  6. 2026-06-13 10:28 UTCGHSA enrichment
  7. 2026-06-12 23:12 UTCEPSS rescore
  8. 2026-06-12 21:58 UTCGHSA enrichment
  9. 2026-06-12 09:33 UTCGHSA enrichment
  10. 2026-06-11 21:08 UTCGHSA enrichment
  11. 2026-06-11 08:44 UTCGHSA enrichment
  12. 2026-06-10 20:20 UTCGHSA enrichment
  13. 2026-06-10 07:56 UTCGHSA enrichment
  14. 2026-06-09 19:32 UTCGHSA enrichment
  15. 2026-06-09 07:09 UTCGHSA enrichment
  16. 2026-06-08 18:44 UTCGHSA enrichment
  17. 2026-06-08 06:20 UTCGHSA enrichment
  18. 2026-06-07 17:57 UTCGHSA enrichment
  19. 2026-06-07 05:32 UTCGHSA enrichment
  20. 2026-06-06 17:09 UTCGHSA enrichment
  21. 2026-06-06 04:45 UTCGHSA enrichment
  22. 2026-06-05 16:21 UTCGHSA enrichment
  23. 2026-06-05 03:57 UTCGHSA enrichment
  24. 2026-06-04 15:33 UTCGHSA enrichment
  25. 2026-06-04 03:09 UTCGHSA enrichment
  26. 2026-06-03 14:45 UTCGHSA enrichment
  27. 2026-06-03 02:21 UTCGHSA enrichment
  28. 2026-06-02 13:57 UTCGHSA enrichment
  29. 2026-06-02 01:33 UTCGHSA enrichment
  30. 2026-06-01 13:09 UTCGHSA enrichment
  31. 2026-06-01 00:45 UTCGHSA enrichment
  32. 2026-05-29 17:20 UTCEG score recompute
  33. 2026-05-29 17:20 UTCGHSA enrichment

Frequently asked(5)

What is CVE-2026-45741?
CVE-2026-45741 is a high vulnerability published on May 29, 2026. Gotenberg has an SSRF deny-list bypass in IsPublicIP via IPv6 6to4 / NAT64 / site-local prefixes Summary IsPublicIP in pkg/gotenberg/outbound.go incorrectly classifies IPv6 6to4 / NAT64 / deprecated site-local addresses as public IPs, allowing an unauthenticated attacker to reach internal…
When was CVE-2026-45741 disclosed?
CVE-2026-45741 was first published in the National Vulnerability Database on May 29, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2026-45741 actively exploited?
CVE-2026-45741 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 16.6% percentile likelihood of exploitation in the next 30 days — higher percentiles indicate greater predicted risk.
What is the CVSS score of CVE-2026-45741?
CVE-2026-45741 has a CVSS v4.0 base score of 7.5 (CNA self-assessment; NVD's own analysis pending).
How do I remediate CVE-2026-45741?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2026-45741, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

See which npm, PyPI, Go, and Maven packages are affected by CVE-2026-45741

Explore →

Is Your Infrastructure Affected by CVE-2026-45741?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.