{"id":"CVE-2026-116134","kind":"vulnerability","aliases":["CVE-2026-116134"],"related":[],"title":"Perl HTTP::Body: unbounded multipart headers let one request exhaust memory","description":"HTTP::Body versions before 1.23_01 for Perl allow memory exhaustion via an unbounded multipart part header block.\n\nThe multipart parser takes everything up to the first blank line after a boundary as the part's header block, with no limit on its size or number of lines. Every line is stored in the part's header hash, so a block of short lines costs about 60 bytes of memory per input byte.\n\nA remote attacker can exhaust worker memory with a single request.","summary":"HTTP::Body, a Perl module that parses HTTP request bodies, reads every line of a multipart part's header block with no size limit, storing each in memory. A remote attacker can send one crafted request that exhausts the worker's memory and crashes or stalls it.","severity":"high","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["catalyst","http-body","package","perl","plack","self-hosted"],"not_affected_if":["no-multipart-uploads","request-size-capped-at-proxy"],"how_to_check":"- Run `cpanm --info HTTP::Body` or `perl -MHTTP::Body -e 'print $HTTP::Body::VERSION'` to read the installed version\n- Search lockfiles and `cpanfile.snapshot` for `HTTP::Body`\n- Check whether the app parses multipart uploads through HTTP::Body (for example via Catalyst or Plack request handling)","fix":"- Upgrade HTTP::Body to `1.23_01` or later\n- Until upgraded, limit request body and header size at the reverse proxy or server","status":"open","published_at":"2026-10-28T18:17:12+00:00","first_seen_at":"2026-10-28T18:34:33+00:00","triaged_at":"2026-10-28T18:35:34+00:00","updated_at":"2026-10-28T18:35:34+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-28T18:35:34Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade HTTP::Body to `1.23_01` or later\n- Until upgraded, limit request body and header size at the reverse proxy or server","reach":"internet","title":"Perl HTTP::Body: unbounded multipart headers let one request exhaust memory","impact":"medium","summary":"HTTP::Body, a Perl module that parses HTTP request bodies, reads every line of a multipart part's header block with no size limit, storing each in memory. A remote attacker can send one crafted request that exhausts the worker's memory and crashes or stalls it.","category":"package","nicknames":[],"who_cares":["perl","http-body","catalyst","plack","self-hosted"],"confidence":0.7,"needs_auth":"no","worst_case":"Remote request exhausts worker memory, causing denial of service","analyst_note":"","how_to_check":"- Run `cpanm --info HTTP::Body` or `perl -MHTTP::Body -e 'print $HTTP::Body::VERSION'` to read the installed version\n- Search lockfiles and `cpanfile.snapshot` for `HTTP::Body`\n- Check whether the app parses multipart uploads through HTTP::Body (for example via Catalyst or Plack request handling)","needs_analyst":false,"not_affected_if":["no-multipart-uploads","request-size-capped-at-proxy"],"who_is_affected":"Perl web applications that parse multipart/form-data request bodies with HTTP::Body below 1.23_01, typically through frameworks built on it such as Catalyst or Plack. Services that never accept multipart uploads or sit behind a proxy that caps request size are less exposed. unknown whether the sources list specific frameworks.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"high"},"cost_usd":0.000646,"input_tokens":3359,"output_tokens":620,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-116134':14A,17A '-2026':13A,16A '01':79C '1.23':78C '60':140C 'allow':82C 'attack':58B,149C 'blank':101C 'block':47B,91C,111C,134C 'bodi':3A,21B,29B,37B,75C 'boundari':105C 'byte':141C,146C 'catalyst':18B 'cost':138C 'craft':62B 'crash':71B 'cve':12A,15A 'everi':39B,122C 'everyth':96C 'exhaust':10A,65B,84C,151C 'first':100C 'hash':131C 'header':6A,46B,90C,110C,130C 'host':27B 'http':2A,20B,28B,35B,74C 'http-bodi':19B 'input':145C 'let':7A 'limit':51B,114C 'line':40B,102C,121C,123C,137C 'memori':11A,55B,69B,83C,143C,153C 'modul':32B 'multipart':5A,43B,88C,93C 'number':119C 'one':8A,61B 'packag':22B 'pars':34B 'parser':94C 'part':44B,89C,108C,128C 'per':144C 'perl':1A,23B,31B,81C 'plack':24B 'read':38B 'remot':57B,148C 'request':9A,36B,63B,157C 'self':26B 'self-host':25B 'send':60B 'short':136C 'singl':156C 'size':50B,117C 'stall':73B 'store':52B,125C 'take':95C 'unbound':4A,87C 'version':76C 'via':85C 'worker':67B,152C","nicknames":[],"mitigations":[],"who_affected":"Perl web applications that parse multipart/form-data request bodies with HTTP::Body below 1.23_01, typically through frameworks built on it such as Catalyst or Plack. Services that never accept multipart uploads or sit behind a proxy that caps request size are less exposed. unknown whether the sources list specific frameworks.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-28T18:17:12+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-116134","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-116134","severity":null,"published_at":"2026-10-28T18:17:12+00:00","modified_at":"2026-10-28T18:17:12+00:00","first_seen_at":"2026-10-28T18:34:33+00:00","fetched_at":"2026-10-28T18:34:33+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}