{"id":"CVE-2026-77630","kind":"vulnerability","aliases":["CVE-2026-77630"],"related":[],"title":"pupnp: hostname resolution in UPnP parser lets remote peers stall server threads","description":"pupnp is an SDK for development of UPnP device and control point applications. Prior to 22.0.4, parse_hostport in upnp/src/genlib/net/uri/uri.c synchronously calls getaddrinfo while parse_uri is processing attacker-supplied hostnames from inbound HTTP request targets in upnp/src/genlib/net/http/httpparser.c and GENA SUBSCRIBE CALLBACK headers handled by create_url_list in upnp/src/gena/gena_device.c. A remote unauthenticated peer can choose a slow or nonresponsive hostname and block a bounded miniserver worker for the resolver timeout, allowing a small number of requests to exhaust the thread pool and deny UPnP service. This issue is fixed in 22.0.4.","summary":"pupnp is a C SDK for UPnP devices and control points. Before 22.0.4, attacker-supplied hostnames in inbound HTTP request targets and GENA SUBSCRIBE CALLBACK headers are resolved synchronously, so a slow hostname blocks a miniserver worker.","severity":"high","cvss":7.5,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"pupnp project pupnp","fixed":["22.0.4"],"affected":"< 22.0.4","ecosystem":"vendor"}],"ecosystems":["vendor"],"tags":["c","embedded","package","self-hosted","upnp"],"not_affected_if":["miniserver-not-exposed","pupnp-not-linked"],"how_to_check":"- Find the pupnp version in your build, for example with `pkg-config --modversion libupnp` or by checking the vendored copy's version header.\n- Confirm the library is built from source or linked into your application, and that it runs a UPnP device or control point miniserver.","fix":"- Upgrade pupnp to `22.0.4` or later.\n- Rebuild and redeploy applications that statically link or vendor pupnp.","status":"open","published_at":"2026-10-16T16:21:03+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 `22.0.4` or later.\n- Rebuild and redeploy applications that statically link or vendor pupnp.","reach":"network","title":"pupnp: hostname resolution in UPnP parser lets remote peers stall server threads","impact":"low","summary":"pupnp is a C SDK for UPnP devices and control points. Before 22.0.4, attacker-supplied hostnames in inbound HTTP request targets and GENA SUBSCRIBE CALLBACK headers are resolved synchronously, so a slow hostname blocks a miniserver worker.","category":"package","nicknames":[],"who_cares":["c","upnp","embedded","self-hosted"],"confidence":0.7,"needs_auth":"no","worst_case":"remote peer exhausts thread pool, denying UPnP service","analyst_note":"","how_to_check":"- Find the pupnp version in your build, for example with `pkg-config --modversion libupnp` or by checking the vendored copy's version header.\n- Confirm the library is built from source or linked into your application, and that it runs a UPnP device or control point miniserver.","needs_analyst":false,"not_affected_if":["pupnp-not-linked","miniserver-not-exposed"],"who_is_affected":"Applications that embed pupnp to run a UPnP device or GENA event subscriber listen on a network-reachable port, since the flaw is triggered by inbound HTTP requests and SUBSCRIBE callback headers. Systems that only run pupnp as a client on a closed network, or that do not expose the miniserver, have less exposure. The sources do not say whether default configurations are exposed.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.00065,"input_tokens":3504,"output_tokens":600,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-2026':14A,17A '-77630':15A,18A '22.0.4':41B,82C,159C 'allow':139C 'applic':79C 'attack':43B,96C 'attacker-suppli':42B,95C 'block':63B,130C 'bound':132C 'c':22B,32B 'call':88C 'callback':54B,109C 'choos':123C 'control':38B,77C 'creat':113C 'cve':13A,16A 'deni':151C 'develop':72C 'devic':36B,75C 'embed':23B 'exhaust':146C 'fix':157C 'gena':52B,107C 'getaddrinfo':89C 'handl':111C 'header':55B,110C 'host':27B 'hostnam':2A,45B,62B,98C,128C 'hostport':84C 'http':48B,101C 'inbound':47B,100C 'issu':155C 'let':7A 'list':115C 'miniserv':65B,133C 'nonrespons':127C 'number':142C 'packag':24B 'pars':83C,91C 'parser':6A 'peer':9A,121C 'point':39B,78C 'pool':149C 'prior':80C 'process':94C 'project':20A 'pupnp':1A,19A,21A,29B,67C 'remot':8A,119C 'request':49B,102C,144C 'resolut':3A 'resolv':57B,137C 'sdk':33B,70C 'self':26B 'self-host':25B 'server':11A 'servic':153C 'slow':61B,125C 'small':141C 'stall':10A 'subscrib':53B,108C 'suppli':44B,97C 'synchron':58B,87C 'target':50B,103C 'thread':12A,148C 'timeout':138C 'unauthent':120C 'upnp':5A,28B,35B,74C,152C 'upnp/src/gena/gena_device.c':117C 'upnp/src/genlib/net/http/httpparser.c':105C 'upnp/src/genlib/net/uri/uri.c':86C 'uri':92C 'url':114C 'worker':66B,134C","nicknames":[],"mitigations":[],"who_affected":"Applications that embed pupnp to run a UPnP device or GENA event subscriber listen on a network-reachable port, since the flaw is triggered by inbound HTTP requests and SUBSCRIBE callback headers. Systems that only run pupnp as a client on a closed network, or that do not expose the miniserver, have less exposure. The sources do not say whether default configurations are exposed.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T16:21:03+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-77630","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-77630","severity":null,"published_at":"2026-10-16T16:21:03+00:00","modified_at":"2026-10-20T19:36:35+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"}