GitHub Advisoryadvisory · Go
GHSA-5q7p-7jgv-ww56 Gotenberg has case-insensitive URL scheme that bypasses webhook and downloadFrom deny-list SSRF protection
HIGH
Official page ↗
- Aliases
- CVE-2026-40280
- Ecosystem
- Go
- Packages
- github.com/gotenberg/gotenberg/v8
- Severity
- High
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N
- Weaknesses
- CWE-918
- Reviewed
- 2026-04-30
Affected packages
• Go github.com/gotenberg/gotenberg/v8: < 8.31.0 → fixed in 8.31.0
Description
Vulnerability Details
CWE: CWE-918 - Server-Side Request Forgery (SSRF)
The default private-IP deny-lists for --webhook-deny-list and --api-download-from-deny-list use a case-sensitive regex (^https?://). Any uppercase URL scheme variant (HTTP://, HTTPS://, Http://) bypasses the pattern. Go's net/url.Parse() normalizes the scheme to lowercase when making the outbound TCP connection, so the connection succeeds normally. Affected: pkg/gotenberg/filter.go:FilterDeadline(), pkg/modules/webhook/webhook.go:42, pkg/modules/api/api.go:199. Confirmed in Docker: http://172.17.0.1:12345/ returns HTTP 403 (blocked), HTTP://172.17.0.1:12345/ returns HTTP 202 (bypassed, TCP connection attempted). Same pattern as CVE-2026-27018/GHSA-jjwv-57xh-xr6r but in newly added webhook+downloadFrom deny-lists (commit 3f01ca1, 2026-04-07). Affected versions: test'
# Error is "Unable to download file" (connection refused), not "filter URL" — bypass confirmed
```
Impact
An unauthenticated attacker can access internal network services (private IP ranges, loopback, link-local) that the deny-list was designed to block. The `downloadFrom` SSRF can exfiltrate content from internal services that respond with `Content-Disposition` headers. In cloud environments, this could allow access to instance metadata services (e.g., `HTTP://169.254.169.254/latest/meta-data/`). This bypasses the same security control that was patched in CVE-2026-27018.
Fix
Normalize the URL scheme to lowercase before passing to `FilterDeadline`, or compile deny-list regexes with the case-insensitive flag (`(?i)`).
Vulnerable Code
```go
// See description for details
```
Steps to Reproduce
1. Set up the application using the default configuration
2. See the vulnerability details above
Impact
This vulnerability may allow an attacker to compromise the application.
Related
Alias · CVE (1)
- CVE-2026-40280 Gotenberg is an API-based document conversion tool. vulnerability
Weakness · CWE (1)
- CWE-918 Server-Side Request Forgery weakness
References
- https://github.com/gotenberg/gotenberg/security/advisories/GHSA-5q7p-7jgv-ww56 web
- https://nvd.nist.gov/vuln/detail/CVE-2026-40280 advisory
- https://github.com/gotenberg/gotenberg/commit/3f01ca18d3cc21375a1e2da4b5a3f261c8548e47 web
- https://github.com/advisories/GHSA-jjwv-57xh-xr6r advisory
- https://github.com/gotenberg/gotenberg package
- https://github.com/gotenberg/gotenberg/releases/tag/v8.31.0 web