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
| Ecosystem | Package | Vulnerable | First fixed |
|---|---|---|---|
| Go | github.com/gotenberg/gotenberg/v8 | <= 8.30.1 | 8.32.0 |
| Vendor | Product | Affected versions (per CVE record) |
|---|---|---|
| gotenberg | gotenberg | < 8.31.0 |
Severity scores
| Scored by | CVSS | Score | Vector |
|---|---|---|---|
| GitHub_M | 3.1 | 9.4 Critical | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L |
| GitHub | 3.1 | 9.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
- GitHub Advisory GHSA-4vmc-gm8v-m35h github.com
- CVE.org record CVE-2026-42596 cve.org
- NVD entry CVE-2026-42596 nvd.nist.gov
Other references from the CVE record and advisory
- github.com github.com