{"id":"CVE-2026-115824","kind":"vulnerability","aliases":["CVE-2026-115824"],"related":[],"title":"Starman: unbounded chunked request buffering lets one client exhaust memory","description":"Starman versions before 0.4019 for Perl allow memory exhaustion via unbounded buffering of chunked request bodies.\n\nThe chunked body decoder keeps each chunk in memory until the whole chunk and its CRLF have arrived, and sets no limit on the length of a chunk-size line. A client that declares a huge chunk size and streams data, or sends a chunk-size line that never ends, grows the buffer for as long as it keeps sending.\n\nA remote attacker can exhaust worker memory with a single connection.","summary":"Starman, a Perl PSGI web server, buffers each chunk of a chunked HTTP request body in memory with no size limit, and accepts chunk-size lines of unlimited length. A single remote client can keep sending data and grow the server's memory until the worker runs out, causing denial of service.","severity":"high","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["perl","psgi","runtime","self-hosted","starman"],"not_affected_if":["default-config"],"how_to_check":"- Run `perl -MStarman -e 'print $Starman::VERSION'` or `cpanm --info Starman` to read the installed version\n- Check the lockfile or `cpanfile.snapshot` for the `Starman` version","fix":"- Upgrade Starman to `0.4019` or later\n- Until upgraded, put a reverse proxy in front that caps request body size and rejects oversized chunked requests","status":"open","published_at":"2026-10-25T17:17:01+00:00","first_seen_at":"2026-10-25T17:42:01+00:00","triaged_at":"2026-10-25T17:43:49+00:00","updated_at":"2026-10-25T17:43:49+00:00","category":"runtime","confidence":0.6,"triage":{"at":"2026-10-25T17:43:49Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade Starman to `0.4019` or later\n- Until upgraded, put a reverse proxy in front that caps request body size and rejects oversized chunked requests","reach":"internet","title":"Starman: unbounded chunked request buffering lets one client exhaust memory","impact":"medium","summary":"Starman, a Perl PSGI web server, buffers each chunk of a chunked HTTP request body in memory with no size limit, and accepts chunk-size lines of unlimited length. A single remote client can keep sending data and grow the server's memory until the worker runs out, causing denial of service.","category":"runtime","nicknames":[],"who_cares":["perl","starman","psgi","self-hosted"],"confidence":0.6,"needs_auth":"no","worst_case":"Remote client exhausts worker memory, causing denial of service","analyst_note":"Confirm the affected version range and fixed release from the NVD entry and the Starman changelog; the sources give only 'before 0.4019'.","how_to_check":"- Run `perl -MStarman -e 'print $Starman::VERSION'` or `cpanm --info Starman` to read the installed version\n- Check the lockfile or `cpanfile.snapshot` for the `Starman` version","needs_analyst":true,"not_affected_if":["default-config"],"who_is_affected":"Any service that runs Starman directly as its public HTTP server, or behind a proxy that forwards chunked request bodies unchanged, is exposed. Deployments behind a proxy that buffers and limits request bodies, or that never accept chunked uploads, are less exposed. The sources do not give more detail on the exact configuration needed.","user_interaction":"no","needs_special_setup":"no","severity_if_unknown":"high"},"cost_usd":0.000638,"input_tokens":3381,"output_tokens":599,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-115824':13A,16A '-2026':12A,15A '0.4019':80C 'accept':46B 'allow':83C 'arriv':110C 'attack':157C 'bodi':38B,92C,95C 'buffer':5A,30B,88C,147C 'caus':73B 'chunk':3A,32B,35B,48B,90C,94C,99C,105C,121C,130C,139C 'chunk-siz':47B,120C,138C 'client':8A,57B,125C 'connect':165C 'crlf':108C 'cve':11A,14A 'data':61B,134C 'declar':127C 'decod':96C 'denial':74B 'end':144C 'exhaust':9A,85C,159C 'grow':63B,145C 'host':22B 'http':36B 'huge':129C 'keep':59B,97C,153C 'length':53B,117C 'let':6A 'limit':44B,114C 'line':50B,123C,141C 'long':150C 'memori':10A,40B,67B,84C,101C,161C 'never':143C 'one':7A 'perl':17B,26B,82C 'psgi':18B,27B 'remot':56B,156C 'request':4A,37B,91C 'run':71B 'runtim':19B 'self':21B 'self-host':20B 'send':60B,136C,154C 'server':29B,65B 'servic':76B 'set':112C 'singl':55B,164C 'size':43B,49B,122C,131C,140C 'starman':1A,23B,24B,77C 'stream':133C 'unbound':2A,87C 'unlimit':52B 'version':78C 'via':86C 'web':28B 'whole':104C 'worker':70B,160C","nicknames":[],"mitigations":[],"who_affected":"Any service that runs Starman directly as its public HTTP server, or behind a proxy that forwards chunked request bodies unchanged, is exposed. Deployments behind a proxy that buffers and limits request bodies, or that never accept chunked uploads, are less exposed. The sources do not give more detail on the exact configuration needed.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-25T17:17:01+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-115824","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-115824","severity":null,"published_at":"2026-10-25T17:17:01+00:00","modified_at":"2026-10-25T17:17:01+00:00","first_seen_at":"2026-10-25T17:42:01+00:00","fetched_at":"2026-10-25T17:42:01+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"}