{"id":"CVE-2026-40280","published":"2026-05-05T19:52:40Z","modified":"2026-05-06T18:41:51Z","title":"Gotenberg SSRF via case-insensitive URL scheme bypass in webhook and downloadFrom deny-lists","vendor":"gotenberg","product":"gotenberg","tier":"tail","description":{"text":"Gotenberg is an API-based document conversion tool. In versions 8.30.1 and earlier, the default private-IP deny-lists for the --webhook-deny-list and --api-download-from-deny-list flags use a case-sensitive regular expression (^https?://) to match URL schemes. Because Go's net/url.Parse() normalizes the scheme to lowercase before establishing the outbound TCP connection, an attacker can bypass the deny-list by simply capitalizing part of the URL scheme (e.g., HTTP://, HTTPS://, or Http://). This allows unauthenticated requests to reach internal network services, including private IP ranges, loopback addresses, and cloud instance metadata endpoints such as HTTP://169.254.169.254/latest/meta-data/. \n\nThis bypasses the same security control that was patched in CVE-2026-27018.\n\nThis issue has been fixed in version 8.31.0.","provenance":"source","from":"CVE.org"},"cvss":{"score":7.8,"severity":"HIGH","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:L/SA:N","provenance":"source","from":"CVE.org CNA"},"epss":{"score":0.0195,"percentile":0.80148,"provenance":"source"},"cwes":[{"id":"CWE-918","name":"Server-Side Request Forgery"}],"references":[{"url":"https://github.com/gotenberg/gotenberg/security/advisories/GHSA-5q7p-7jgv-ww56","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/gotenberg/gotenberg/commit/3f01ca18d3cc21375a1e2da4b5a3f261c8548e47","tags":["x_refsource_MISC"]},{"url":"https://github.com/advisories/GHSA-jjwv-57xh-xr6r","tags":["x_refsource_MISC"]}],"priority":{"score":26.5,"factors":[{"name":"EPSS percentile","points":16.03},{"name":"Public exploit code","points":5.0},{"name":"CVSS severity","points":5.46}]},"exploitSources":{"nuclei":[{"id":"CVE-2026-40280","name":"Gotenberg <= 8.30.1 - Server Side Request Forgery","severity":"critical","path":"http/cves/2026/CVE-2026-40280.yaml","url":"https://github.com/projectdiscovery/nuclei-templates/blob/main/http/cves/2026/CVE-2026-40280.yaml"}],"provenance":"source"},"vendorSlug":"gotenberg","affectedVersions":[{"vendor":"gotenberg","product":"gotenberg","versions":["<= 8.30.1"]}],"affected":[{"ecosystem":"Go","package":"github.com/gotenberg/gotenberg/v8","vulnerableRanges":["<8.31.0"],"patched":["8.31.0"],"from":["GHSA-5q7p-7jgv-ww56","GO-2026-5151"],"provenance":"source"},{"ecosystem":"Go","package":"github.com/gotenberg/gotenberg/v7","vulnerableRanges":["all versions"],"patched":[],"from":["GO-2026-5151"],"provenance":"source"}],"euvd":{"id":"EUVD-2026-27476","exploited":false,"provenance":"source"},"lineage":{"familyId":"fam-gotenberg-cve-2024-21527","parents":[{"from":"CVE-2026-27018","to":"CVE-2026-40280","relation":"bypass","confidence":"high","kind":"lineage","evidence":[{"kind":"text","provenance":"source","relation":"bypass","quote":"This bypasses the same security control that was patched in CVE-2026-27018.","from":"CVE.org","in":"CVE-2026-40280"},{"kind":"osv-related","provenance":"source","id":"GHSA-jjwv-57xh-xr6r","via":"related"},{"kind":"osv-related","provenance":"source","id":"GHSA-5q7p-7jgv-ww56","via":"reference","url":"https://github.com/advisories/GHSA-jjwv-57xh-xr6r"},{"kind":"osv-related","provenance":"source","id":"GO-2026-5151","via":"reference","url":"https://github.com/advisories/GHSA-jjwv-57xh-xr6r"}]}],"packageHistory":[{"cve":"CVE-2026-27018","published":"2026-03-30","fixed":"8.29.0","kev":false},{"cve":"CVE-2026-35458","published":"2026-04-07","fixed":"8.30.0","kev":false,"link":{"from":"CVE-2026-35458","to":"CVE-2026-40280","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"Go:github.com/gotenberg/gotenberg/v8","fromFixed":"8.30.0","toFixed":"8.31.0","daysApart":28}]}},{"cve":"CVE-2026-39383","published":"2026-05-05","fixed":"8.31.0","kev":false},{"cve":"CVE-2026-40280","published":"2026-05-05","fixed":"8.31.0","kev":false},{"cve":"CVE-2026-40281","published":"2026-05-06","fixed":"8.31.0","kev":false},{"cve":"CVE-2026-42594","published":"2026-05-14","fixed":"8.32.0","kev":false},{"cve":"CVE-2026-42595","published":"2026-05-14","fixed":"8.32.0","kev":false}],"package":"Go:github.com/gotenberg/gotenberg/v8"}}