{"id":"CVE-2026-120632","kind":"vulnerability","aliases":["CVE-2026-120632"],"related":[],"title":"Perl CGI module: crafted Content-Type header can exhaust CPU","description":"CGI versions before 5.00 for Perl allow CPU exhaustion via a backtracking regex on the XForms multipart/related Content-Type.\n\nWhen a POST Content-Type contains multipart/related, the boundary and start parameters are extracted with an unanchored pattern that puts .+ on either side of the boundary capture, which backtracks in cubic time on a header that does not match. No request body is needed.","summary":"The Perl CGI module before 5.00 parses the multipart/related Content-Type header with a regular expression that backtracks heavily on non-matching input. A single crafted POST header can tie up CPU, causing a denial of service.","severity":"medium","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["cgi","package","perl","web-apps"],"not_affected_if":["cgi-not-used","static-hosting"],"how_to_check":"- Check the installed CGI module version with `perl -MCGI -e 'print $CGI::VERSION'`\n- Look for `CGI` in cpanfile, Makefile.PL or other Perl dependency files and confirm the pinned version\n- Find whether the app uses CGI's XForms multipart handling on POST endpoints","fix":"- CGI versions `5.00` and later (per the advisory; patch linked in sources)","status":"open","published_at":"2026-11-04T00:17:24+00:00","first_seen_at":"2026-11-04T00:46:16+00:00","triaged_at":"2026-11-04T00:48:26+00:00","updated_at":"2026-11-04T00:48:26+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-11-04T00:48:26Z","model":"claude-haiku-5-5","output":{"fix":"- CGI versions `5.00` and later (per the advisory; patch linked in sources)","reach":"internet","title":"Perl CGI module: crafted Content-Type header can exhaust CPU","impact":"low","summary":"The Perl CGI module before 5.00 parses the multipart/related Content-Type header with a regular expression that backtracks heavily on non-matching input. A single crafted POST header can tie up CPU, causing a denial of service.","audience":"developers","category":"package","nicknames":[],"who_cares":["perl","cgi","web-apps"],"confidence":0.6,"fix_status":"available","needs_auth":"no","worst_case":"Server CPU is consumed, causing denial of service for the app","analyst_note":"","how_to_check":"- Check the installed CGI module version with `perl -MCGI -e 'print $CGI::VERSION'`\n- Look for `CGI` in cpanfile, Makefile.PL or other Perl dependency files and confirm the pinned version\n- Find whether the app uses CGI's XForms multipart handling on POST endpoints","plain_action":"","needs_analyst":false,"not_affected_if":["cgi-not-used","static-hosting"],"who_is_affected":"Perl applications that load the CGI module and accept POST requests are exposed, since the flaw triggers from the Content-Type header alone with no request body. Applications that do not use CGI, or that run behind a proxy that rejects malformed Content-Type headers, are less exposed. The sources do not say which specific CGI features are needed to reach the regex.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"medium"},"cost_usd":0.000702,"input_tokens":4165,"output_tokens":570,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-120632':14A,17A '-2026':13A,16A '5.00':29B,66C 'allow':69C 'app':23B 'backtrack':42B,74C,112C 'bodi':125C 'boundari':92C,109C 'captur':110C 'caus':58B 'cgi':2A,18B,26B,63C 'contain':89C 'content':6A,34B,81C,87C 'content-typ':5A,33B,80C,86C 'cpu':11A,57B,70C 'craft':4A,51B 'cubic':114C 'cve':12A,15A 'denial':60B 'either':105C 'exhaust':10A,71C 'express':40B 'extract':97C 'header':8A,36B,53B,118C 'heavili':43B 'input':48B 'match':47B,122C 'modul':3A,27B 'multipart/related':32B,79C,90C 'need':127C 'non':46B 'non-match':45B 'packag':19B 'paramet':95C 'pars':30B 'pattern':101C 'perl':1A,20B,25B,68C 'post':52B,85C 'put':103C 'regex':75C 'regular':39B 'request':124C 'servic':62B 'side':106C 'singl':50B 'start':94C 'tie':55B 'time':115C 'type':7A,35B,82C,88C 'unanchor':100C 'version':64C 'via':72C 'web':22B 'web-app':21B 'xform':78C","nicknames":[],"mitigations":[],"who_affected":"Perl applications that load the CGI module and accept POST requests are exposed, since the flaw triggers from the Content-Type header alone with no request body. Applications that do not use CGI, or that run behind a proxy that rejects malformed Content-Type headers, are less exposed. The sources do not say which specific CGI features are needed to reach the regex.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"pkeys":[],"ptokens":[],"labels":["cgi","medium","package","perl","webapps"],"campaign_type":null,"first_public_at":"2026-11-04T00:17:24+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-120632","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-120632","severity":null,"published_at":"2026-11-04T00:17:24+00:00","modified_at":"2026-11-04T00:17:24+00:00","first_seen_at":"2026-11-04T00:46:16+00:00","fetched_at":"2026-11-04T00:46:16+00:00","note":null}],"documents":[{"id":62108,"url":"https://github.com/leejo/CGI.pm/commit/1e529c7ac8d410a51b4b04ab9d6cc00d51ef33c0.patch","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}