Security Digest · Vulnerability record

CVE-2026-42596: Gotenberg vulnerable to unauthenticated SSRF via default deny-list bypass in downloadFrom and webhook

Gotenberg is a Docker-powered stateless API for PDF files.

CVSS 9.4 Critical EPSS 1.8% · p78

Should you act?

Critical and remotely reachable

No known exploitation yet, but it is network-reachable without credentials. This signal is computed from CISA KEV, EPSS and CVSS data; it is not an editorial verdict.

  • Not in CISA KEV, but CISA’s SSVC assessment records a public proof-of-concept, so attack code exists.
  • EPSS 1.8%, percentile 78: FIRST’s model estimates a 1.8% chance of exploitation activity in the next 30 days, higher than 78% of all scored CVEs (moderate). EPSS is a probability, not a verdict.
  • Remotely reachable with no login and no user interaction. If the vulnerable service is exposed to the internet, prioritize it.
  • Only applies if your dependency tree includes github.com/gotenberg/gotenberg/v8 (Go) <= 8.30.1, fixed in 8.32.0. Check your lockfile, including transitive dependencies.

What it is

Gotenberg is a Docker-powered stateless API for PDF files. Prior to 8.31.0, the default deny-lists used by Gotenberg's downloadFrom feature and webhook feature are bypassable. Because the filter is regex-based and case-sensitive, an unauthenticated attacker can supply URLs such as http://[::ffff:127.0.0.1]:... and reach loopback or private HTTP services that the default deny-list is intended to block. This crosses a real security boundary because an external caller can force the server to make outbound requests to internal-only targets. This vulnerability is fixed in 8.31.0.

From the GitHub advisory

Summary The default deny-lists used by Gotenberg's downloadFrom feature and webhook feature are bypassable. Because the filter is regex-based and case-sensitive, an unauthenticated attacker can supply URLs such as http://[::ffff:127.0.0.1]:... and reach loopback or private HTTP services that the default deny-list is intended to block. This crosses a real security boundary because an external caller can force the server to make outbound requests to internal-only targets.

Details The issue originates from the shipped default deny-list regexes and the way those regexes are applied:

- pkg/modules/api/api.go:198-200 defines the default api-download-from-deny-list. - pkg/modules/webhook/webhook.go:41-43 defines the default webhook-deny-list. - pkg/gotenberg/filter.go:20-69 evaluates those patterns with regexp2 using case-sensitive matching.

The attacker-controlled URL then reaches outbound request sinks:

- pkg/modules/api/context.go:208-282 - Reads attacker-supplied downloadFrom. - Calls gotenberg.FilterDeadline(...). - Issues an outbound GET with retryablehttp.NewRequest(...) and client.Do(...). - pkg/modules/webhook/middleware.go:99-217 - Reads Gotenberg-Webhook-Url and Gotenberg-Webhook-Events-Url. - Calls gotenberg.FilterDeadline(...). - Constructs a client for outbound delivery. - pkg/modules/webhook/client.go:39-152 - Sends the success or error webhook request. - pkg/modules/webhook/client.go:155-216 - Sends the webhook event request.

Weakness type: CWE-918.

Product: github.com/gotenberg/gotenberg/v8 (Go) · Assigned by: GitHub_M · Published: 2026-05-14

Affected and fixed versions

EcosystemPackageVulnerableFirst fixed
Gogithub.com/gotenberg/gotenberg/v8<= 8.30.18.32.0
VendorProductAffected versions (per CVE record)
gotenberggotenberg< 8.31.0

Severity scores

Scored byCVSSScoreVector
GitHub_M3.19.4 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L
GitHub3.19.4 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L
  • Attack vector: network (remotely reachable)
  • Attack complexity: low
  • Privileges required: none (no login)
  • User interaction: none
  • Scope: unchanged

CVSS measures how bad a flaw is if exploited, not how likely exploitation is. Read it next to the exploitation data below.

Exploitation and urgency

  • CISA KEV: not listed (no confirmed in-the-wild exploitation known to CISA).
  • CISA SSVC assessment: exploitation poc, automatable yes, technical impact partial.
  • FIRST EPSS (model of 2026-10-21): 1.77% probability of exploitation activity in the next 30 days; percentile 78.

Timeline

  • — GitHub-reviewed advisory GHSA-4vmc-gm8v-m35h published (critical)
  • — CVE record published by GitHub_M
  • — CVE record last updated

Sources and references

Original sources first. Version and fix details should always be confirmed against the vendor or project advisory.

Vulnerability records

  1. GitHub Advisory GHSA-4vmc-gm8v-m35h github.com
  2. CVE.org record CVE-2026-42596 cve.org
  3. NVD entry CVE-2026-42596 nvd.nist.gov

Other references from the CVE record and advisory

  1. github.com github.com

Critical Go advisories · Today’s Security Digest