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)
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 6× in last 7d / 44× 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.

Showing the most recent 100 of 111 total refreshes for this CVE.

  1. 2026-07-16 01:59 UTCEG score recompute
  2. 2026-07-16 01:59 UTCGHSA enrichment
  3. 2026-07-14 14:08 UTCEG score recompute
  4. 2026-07-14 14:08 UTCGHSA enrichment
  5. 2026-07-11 17:33 UTCEG score recompute
  6. 2026-07-11 17:33 UTCGHSA enrichment
  7. 2026-07-08 17:25 UTCEG score recompute
  8. 2026-07-08 17:25 UTCGHSA enrichment
  9. 2026-07-02 19:17 UTCEG score recompute
  10. 2026-07-02 19:16 UTCGHSA enrichment
  11. 2026-07-02 04:20 UTCEG score recompute
  12. 2026-07-02 04:20 UTCGHSA enrichment
  13. 2026-07-01 13:55 UTCEG score recompute
  14. 2026-07-01 13:55 UTCGHSA enrichment
  15. 2026-07-01 01:31 UTCEG score recompute
  16. 2026-07-01 01:31 UTCGHSA enrichment
  17. 2026-06-30 01:13 UTCEG score recompute
  18. 2026-06-30 01:13 UTCGHSA enrichment
  19. 2026-06-29 12:49 UTCEG score recompute
  20. 2026-06-29 12:49 UTCGHSA enrichment
  21. 2026-06-28 18:27 UTCEG score recompute
  22. 2026-06-28 18:27 UTCGHSA enrichment
  23. 2026-06-28 05:55 UTCEG score recompute
  24. 2026-06-28 05:55 UTCGHSA enrichment
  25. 2026-06-27 17:12 UTCEG score recompute
Show 75 more
  1. 2026-06-27 17:12 UTCGHSA enrichment
  2. 2026-06-27 04:40 UTCEG score recompute
  3. 2026-06-27 04:40 UTCGHSA enrichment
  4. 2026-06-26 16:16 UTCEG score recompute
  5. 2026-06-26 16:16 UTCGHSA enrichment
  6. 2026-06-25 18:48 UTCEG score recompute
  7. 2026-06-25 18:48 UTCGHSA enrichment
  8. 2026-06-25 06:24 UTCEG score recompute
  9. 2026-06-25 06:24 UTCGHSA enrichment
  10. 2026-06-24 15:21 UTCEG score recompute
  11. 2026-06-24 15:21 UTCGHSA enrichment
  12. 2026-06-18 22:47 UTCEG score recompute
  13. 2026-06-18 22:47 UTCGHSA enrichment
  14. 2026-06-18 10:23 UTCEG score recompute
  15. 2026-06-18 10:23 UTCGHSA enrichment
  16. 2026-06-17 17:43 UTCEG score recompute
  17. 2026-06-17 17:43 UTCGHSA enrichment
  18. 2026-06-17 03:35 UTCEG score recompute
  19. 2026-06-17 03:35 UTCGHSA enrichment
  20. 2026-06-16 15:11 UTCEG score recompute
  21. 2026-06-16 15:11 UTCGHSA enrichment
  22. 2026-06-16 00:49 UTCEG score recompute
  23. 2026-06-16 00:49 UTCGHSA enrichment
  24. 2026-06-15 12:25 UTCEG score recompute
  25. 2026-06-15 12:25 UTCGHSA enrichment
  26. 2026-06-14 23:41 UTCEG score recompute
  27. 2026-06-14 23:41 UTCGHSA enrichment
  28. 2026-06-14 23:18 UTCEPSS rescore
  29. 2026-06-14 11:16 UTCEG score recompute
  30. 2026-06-14 11:16 UTCGHSA enrichment
  31. 2026-06-13 23:00 UTCEPSS rescore
  32. 2026-06-13 22:53 UTCEG score recompute
  33. 2026-06-13 22:53 UTCGHSA enrichment
  34. 2026-06-13 10:29 UTCEG score recompute
  35. 2026-06-13 10:28 UTCGHSA enrichment
  36. 2026-06-12 23:12 UTCEPSS rescore
  37. 2026-06-12 21:58 UTCEG score recompute
  38. 2026-06-12 21:58 UTCGHSA enrichment
  39. 2026-06-12 09:33 UTCEG score recompute
  40. 2026-06-12 09:33 UTCGHSA enrichment
  41. 2026-06-11 21:08 UTCEG score recompute
  42. 2026-06-11 21:08 UTCGHSA enrichment
  43. 2026-06-11 08:44 UTCEG score recompute
  44. 2026-06-11 08:44 UTCGHSA enrichment
  45. 2026-06-10 20:20 UTCEG score recompute
  46. 2026-06-10 20:20 UTCGHSA enrichment
  47. 2026-06-10 07:56 UTCEG score recompute
  48. 2026-06-10 07:56 UTCGHSA enrichment
  49. 2026-06-09 19:32 UTCEG score recompute
  50. 2026-06-09 19:32 UTCGHSA enrichment
  51. 2026-06-09 07:09 UTCEG score recompute
  52. 2026-06-09 07:09 UTCGHSA enrichment
  53. 2026-06-08 18:44 UTCEG score recompute
  54. 2026-06-08 18:44 UTCGHSA enrichment
  55. 2026-06-08 06:20 UTCEG score recompute
  56. 2026-06-08 06:20 UTCGHSA enrichment
  57. 2026-06-07 17:57 UTCEG score recompute
  58. 2026-06-07 17:57 UTCGHSA enrichment
  59. 2026-06-07 05:32 UTCEG score recompute
  60. 2026-06-07 05:32 UTCGHSA enrichment
  61. 2026-06-06 17:09 UTCEG score recompute
  62. 2026-06-06 17:09 UTCGHSA enrichment
  63. 2026-06-06 04:45 UTCEG score recompute
  64. 2026-06-06 04:45 UTCGHSA enrichment
  65. 2026-06-05 16:21 UTCEG score recompute
  66. 2026-06-05 16:21 UTCGHSA enrichment
  67. 2026-06-05 03:57 UTCEG score recompute
  68. 2026-06-05 03:57 UTCGHSA enrichment
  69. 2026-06-04 15:33 UTCEG score recompute
  70. 2026-06-04 15:33 UTCGHSA enrichment
  71. 2026-06-04 03:09 UTCEG score recompute
  72. 2026-06-04 03:09 UTCGHSA enrichment
  73. 2026-06-03 14:45 UTCEG score recompute
  74. 2026-06-03 14:45 UTCGHSA enrichment
  75. 2026-06-03 02:21 UTCEG score recompute

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.