{"id":"CVE-2026-57487","kind":"vulnerability","aliases":["CVE-2026-57487"],"related":[],"title":"pupnp: chunked HTTP bodies bypass size limit, enabling memory exhaustion","description":"pupnp is an SDK for development of UPnP device and control point applications. Prior to 2.0.2, Transfer-Encoding: chunked causes the HTTP parser in upnp/src/genlib/net/http/httpparser.c to leave parser->content_length at zero while parser_parse_chunky_entity and parser_parse_chunky_body accumulate decoded bytes in parser->msg.entity. The g_maxContentLength checks in http_RecvMessage in upnp/src/genlib/net/http/httpreadwrite.c therefore reject oversized numeric Content-Length bodies but do not enforce the same limit on decoded chunked bodies. A remote peer that can reach a SOAP, GENA, miniserver, or control-point HTTP response path can make the process buffer an entity larger than the configured maximum, causing resource exhaustion and denial of service. This issue is fixed in 2.0.2.","summary":"pupnp's HTTP parser does not apply its maximum content length to chunked Transfer-Encoding bodies, so a remote peer can make the process buffer an oversized entity. The result is resource exhaustion and denial of service.","severity":"high","cvss":7.5,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"pupnp project pupnp","fixed":["2.0.2"],"affected":"< 2.0.2","ecosystem":"vendor"}],"ecosystems":["vendor"],"tags":["c","embedded","iot","package","pupnp","upnp"],"not_affected_if":["pupnp-2.0.2-or-later"],"how_to_check":"- Check the installed pupnp version; `unknown` for the exact command, the sources do not say how it is packaged.\n- Look for pupnp in your device or control point builds that use the UPnP SDK.","fix":"- Upgrade pupnp to `2.0.2` or later.","status":"open","published_at":"2026-10-16T16:18:44+00:00","first_seen_at":"2026-10-23T21:57:13+00:00","triaged_at":"2026-10-25T03:24:58+00:00","updated_at":"2026-10-25T03:24:58+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-25T03:24:58Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade pupnp to `2.0.2` or later.","reach":"network","title":"pupnp: chunked HTTP bodies bypass size limit, enabling memory exhaustion","impact":"medium","summary":"pupnp's HTTP parser does not apply its maximum content length to chunked Transfer-Encoding bodies, so a remote peer can make the process buffer an oversized entity. The result is resource exhaustion and denial of service.","category":"package","nicknames":[],"who_cares":["pupnp","upnp","embedded","iot","c"],"confidence":0.7,"needs_auth":"no","worst_case":"remote peer exhausts memory and crashes the process","analyst_note":"","how_to_check":"- Check the installed pupnp version; `unknown` for the exact command, the sources do not say how it is packaged.\n- Look for pupnp in your device or control point builds that use the UPnP SDK.","needs_analyst":false,"not_affected_if":["pupnp-2.0.2-or-later"],"who_is_affected":"Applications built on pupnp before 2.0.2 that accept HTTP responses or requests over the network, such as SOAP, GENA, miniserver, or control point paths, are exposed. Systems that do not use pupnp, or that run it only on isolated networks with no untrusted peers, are less exposed.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000602,"input_tokens":3544,"output_tokens":495,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-2026':12A,15A '-57487':13A,16A '2.0.2':79C,182C 'accumul':107C 'appli':32B 'applic':76C 'bodi':4A,42B,106C,129C,140C 'buffer':51B,162C 'bypass':5A 'byte':109C 'c':20B 'caus':84C,170C 'check':116C 'chunk':2A,38B,83C,139C 'chunki':100C,105C 'configur':168C 'content':35B,93C,127C 'content-length':126C 'control':74C,153C 'control-point':152C 'cve':11A,14A 'decod':108C,138C 'denial':61B,174C 'develop':69C 'devic':72C 'embed':21B 'enabl':8A 'encod':41B,82C 'enforc':133C 'entiti':54B,101C,164C 'exhaust':10A,59B,172C 'fix':180C 'g':114C 'gena':149C 'http':3A,28B,86C,118C,155C 'iot':22B 'issu':178C 'larger':165C 'leav':91C 'length':36B,94C,128C 'limit':7A,136C 'make':48B,159C 'maxcontentlength':115C 'maximum':34B,169C 'memori':9A 'miniserv':150C 'msg.entity':112C 'numer':125C 'overs':53B,124C 'packag':23B 'pars':99C,104C 'parser':29B,87C,92C,98C,103C,111C 'path':157C 'peer':46B,143C 'point':75C,154C 'prior':77C 'process':50B,161C 'project':18A 'pupnp':1A,17A,19A,24B,26B,64C 'reach':146C 'recvmessag':119C 'reject':123C 'remot':45B,142C 'resourc':58B,171C 'respons':156C 'result':56B 'sdk':67C 'servic':63B,176C 'size':6A 'soap':148C 'therefor':122C 'transfer':40B,81C 'transfer-encod':39B,80C 'upnp':25B,71C 'upnp/src/genlib/net/http/httpparser.c':89C 'upnp/src/genlib/net/http/httpreadwrite.c':121C 'zero':96C","nicknames":[],"mitigations":[],"who_affected":"Applications built on pupnp before 2.0.2 that accept HTTP responses or requests over the network, such as SOAP, GENA, miniserver, or control point paths, are exposed. Systems that do not use pupnp, or that run it only on isolated networks with no untrusted peers, are less exposed.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T16:18:44+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-57487","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-57487","severity":null,"published_at":"2026-10-16T16:18:44+00:00","modified_at":"2026-10-23T16:07:21+00:00","first_seen_at":"2026-10-23T21:57:13+00:00","fetched_at":"2026-10-23T22:28:55+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"}