CVE-2026-45741

HIGHPre-NVD 7.57.5
EchelonGraph scoreMEDIUM 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.5EG
EchelonGraph verdictPlan a fixSerious severity, but no confirmed exploitation yet.
  • High severity, but no confirmed exploitation yet
CISA-KEV: Not listedEPSS PROB: 0%CVSS: 7.5Exploit: None knownExposed: 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(medium)
EG Risk
38(Track)
EG Risk 38/100SSVC: Track

EG Risk is EchelonGraph's 0–100 priority score: it fuses intrinsic severity with real-world exploitation and automatability so you can rank equal-severity CVEs and fix the most dangerous first. Higher = act sooner. Distinct from the 0–10 EG Score (severity).

How it’s computed
Severity75% × 45%
Exploitation0% × 40%
Automatability30% × 15%
Action: Routine — remediate on your standard cadence.
EPSS PROB
0%
EPSS %ILE
17%
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

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

Weakness Classification(2)

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

Data Freshness Timeline

(refreshed 3× in last 7d / 15× 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-27 09:08 UTCEG score recompute
  2. 2026-07-27 09:08 UTCGHSA enrichment
  3. 2026-07-23 03:16 UTCEG score recompute
  4. 2026-07-16 01:59 UTCGHSA enrichment
  5. 2026-07-14 14:08 UTCGHSA enrichment
  6. 2026-07-11 17:33 UTCGHSA enrichment
  7. 2026-07-08 17:25 UTCGHSA enrichment
  8. 2026-07-02 19:16 UTCGHSA enrichment
  9. 2026-07-02 04:20 UTCGHSA enrichment
  10. 2026-07-01 13:55 UTCGHSA enrichment
  11. 2026-07-01 01:31 UTCGHSA enrichment
  12. 2026-06-30 01:13 UTCGHSA enrichment
  13. 2026-06-29 12:49 UTCGHSA enrichment
  14. 2026-06-28 18:27 UTCGHSA enrichment
  15. 2026-06-28 05:55 UTCGHSA enrichment
  16. 2026-06-27 17:12 UTCGHSA enrichment
  17. 2026-06-27 04:40 UTCGHSA enrichment
  18. 2026-06-26 16:16 UTCGHSA enrichment
  19. 2026-06-25 18:48 UTCGHSA enrichment
  20. 2026-06-25 06:24 UTCGHSA enrichment
  21. 2026-06-24 15:21 UTCGHSA enrichment
  22. 2026-06-18 22:47 UTCGHSA enrichment
  23. 2026-06-18 10:23 UTCGHSA enrichment
  24. 2026-06-17 17:43 UTCGHSA enrichment
  25. 2026-06-17 03:35 UTCGHSA enrichment
Show 36 more
  1. 2026-06-16 15:11 UTCGHSA enrichment
  2. 2026-06-16 00:49 UTCGHSA enrichment
  3. 2026-06-15 12:25 UTCGHSA enrichment
  4. 2026-06-14 23:41 UTCGHSA enrichment
  5. 2026-06-14 23:18 UTCEPSS rescore
  6. 2026-06-14 11:16 UTCGHSA enrichment
  7. 2026-06-13 23:00 UTCEPSS rescore
  8. 2026-06-13 22:53 UTCGHSA enrichment
  9. 2026-06-13 10:28 UTCGHSA enrichment
  10. 2026-06-12 23:12 UTCEPSS rescore
  11. 2026-06-12 21:58 UTCGHSA enrichment
  12. 2026-06-12 09:33 UTCGHSA enrichment
  13. 2026-06-11 21:08 UTCGHSA enrichment
  14. 2026-06-11 08:44 UTCGHSA enrichment
  15. 2026-06-10 20:20 UTCGHSA enrichment
  16. 2026-06-10 07:56 UTCGHSA enrichment
  17. 2026-06-09 19:32 UTCGHSA enrichment
  18. 2026-06-09 07:09 UTCGHSA enrichment
  19. 2026-06-08 18:44 UTCGHSA enrichment
  20. 2026-06-08 06:20 UTCGHSA enrichment
  21. 2026-06-07 17:57 UTCGHSA enrichment
  22. 2026-06-07 05:32 UTCGHSA enrichment
  23. 2026-06-06 17:09 UTCGHSA enrichment
  24. 2026-06-06 04:45 UTCGHSA enrichment
  25. 2026-06-05 16:21 UTCGHSA enrichment
  26. 2026-06-05 03:57 UTCGHSA enrichment
  27. 2026-06-04 15:33 UTCGHSA enrichment
  28. 2026-06-04 03:09 UTCGHSA enrichment
  29. 2026-06-03 14:45 UTCGHSA enrichment
  30. 2026-06-03 02:21 UTCGHSA enrichment
  31. 2026-06-02 13:57 UTCGHSA enrichment
  32. 2026-06-02 01:33 UTCGHSA enrichment
  33. 2026-06-01 13:09 UTCGHSA enrichment
  34. 2026-06-01 00:45 UTCGHSA enrichment
  35. 2026-05-29 17:20 UTCEG score recompute
  36. 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 0% probability of exploitation in the next 30 days, which ranks it in the top 83.4% of all scored CVEs.
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.