CVE-2026-40280: Gotenberg has case-insensitive URL scheme that bypasses webhook and downloadFrom deny-list SSRF protection
(updated )
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.
The same bypass (case-insensitive scheme) was previously reported for the Chromium deny-list in CVE-2026-27018 (GHSA-jjwv-57xh-xr6r), but the newly added deny-lists for webhook and downloadFrom contain the identical flaw.
Affected file/function: pkg/gotenberg/filter.go:FilterDeadline(), pkg/modules/webhook/webhook.go:42 (default regex), pkg/modules/api/api.go:199 (default regex)
References
- github.com/advisories/GHSA-5q7p-7jgv-ww56
- github.com/advisories/GHSA-jjwv-57xh-xr6r
- github.com/gotenberg/gotenberg/commit/3f01ca18d3cc21375a1e2da4b5a3f261c8548e47
- github.com/gotenberg/gotenberg/releases/tag/v8.31.0
- github.com/gotenberg/gotenberg/security/advisories/GHSA-5q7p-7jgv-ww56
- nvd.nist.gov/vuln/detail/CVE-2026-40280
Code Behaviors & Features
Detect and mitigate CVE-2026-40280 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →