Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach pupnp HTTP endpoint over network
-
DeliverySend Transfer-Encoding: chunked request/response
-
ExploitStream oversized decoded chunked body
-
ExecutionBypass g_maxContentLength entity limit
-
ImpactExhaust process memory causing denial of service
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitable when the pupnp process handles an HTTP message with Transfer-Encoding: chunked on any of the SOAP, GENA, miniserver, or control-point response paths in http_RecvMessage - i.e. default-enabled functionality, not a special configuration. The decoded chunked body is accumulated in parser->msg.entity without enforcing g_maxContentLength, so an attacker simply needs network reachability to the service and the ability to send chunked-encoded data. Limiting factors: the target must run a pupnp version prior to 2.0.2 and expose a reachable UPnP HTTP endpoint (often LAN-scoped on embedded devices, which constrains exposure to the local network segment unless the service is intentionally internet-facing); impact is confined to availability with no auth bypass or code execution. |
| Impact | All signals point to a genuine but impact-limited issue. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N) is confirmed and credible: a remote, unauthenticated peer can reach the vulnerable HTTP response paths with low complexity and no user interaction, and the source-code diff corroborates the root cause (the g_maxContentLength guard in http_RecvMessage only checked parser->content_length, not the accumulated parser->msg.entity.length for chunked bodies). However, impact is strictly availability (C:N/I:N/A:H, CWE-770 resource exhaustion) - there is no code execution or data exposure, so the 7.5 'High' reflects a pure DoS ceiling, not a critical compromise. No EPSS score, KEV listing, or public POC was provided in the input, so there is no evidence of active exploitation or weaponization; the vulnerability was reported through a coordinated GitHub Security Advisory (GHSA-gcj7-j9f7-q84c) with a fix already shipped in 2.0.2. Net priority: patch promptly on internet-reachable or multi-tenant UPnP services because exploitation is cheap and unauthenticated, but this is not a high-urgency RCE - the realistic worst case is a crashed or memory-starved UPnP process. |
| Exploit ScenarioDerived | A remote attacker who can reach a pupnp-based service's HTTP endpoint (SOAP action, GENA subscription/notify, miniserver, or control-point response path) sends a request or response using Transfer-Encoding: chunked with a very large decoded body. Because the chunked path never updates content_length, the pre-2.0.2 size check is bypassed and the process buffers an entity far exceeding g_maxContentLength, exhausting memory and denying service. No public exploit code was identified at time of analysis, and no authentication or user interaction is required. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
Denial of service in pupnp (the portable UPnP SDK) versions prior to 2.0.2 allows unauthenticated remote attackers to exhaust process resources by sending HTTP messages that use Transfer-Encoding: chunked, which the internal parser decodes and buffers without ever enforcing the configured g_maxContentLength limit on the decoded entity. The flaw is reachable through default-enabled SOAP, GENA, miniserver, and control-point HTTP response paths, so any host that can reach a pupnp-based UPnP endpoint - commonly other devices on the same LAN segment - can trigger memory/resource exhaustion with no authentication or user interaction (CVSS:3.1 7.5, AV:N/AC:L/PR:N/UI:N, availability-only impact). No public exploit code has been identified at time of analysis and the issue is not confirmed as actively exploited; the vendor has shipped a fix in release 2.0.2.
RemediationAI
Vendor-released patch: upgrade to pupnp 2.0.2 (tag release-2.0.2), which contains commit 9ff9bc583ad8ee4ba022634434a7b71db9bd96e1 and appends parser->msg.entity.length > g_maxContentLength to both enforcement points in http_RecvMessage; see the advisory at https://github.com/pupnp/pupnp/security/advisories/GHSA-gcj7-j9f7-q84c. For embedded products where the SDK is bundled by an OEM, apply the corresponding vendor firmware update rather than attempting to patch the library in place; if the OEM has not shipped a build, treat the device as unpatched. Where upgrading is not immediately possible, the effective compensating controls are network-scope reductions rather than parser tweaks: block TCP access to the UPnP HTTP endpoints (typically the device description/miniserver and control ports) and SSDP discovery (UDP 1900) from untrusted networks, and place the device behind a reverse proxy or firewall that rejects or de-chunks Transfer-Encoding: chunked requests before forwarding, which restores the Content-Length cap path and prevents the unchecked accumulation; the trade-off is that UPnP control and discovery stop working across the filtered boundary, so this is viable only for devices that do not require cross-segment control. Lowering the process's memory/resource limits via cgroups or rlimits reduces the severity of exhaustion but does not eliminate the defect and may degrade legitimate operation under load. Note that no public exploit code has been identified at time of analysis, and none of these workarounds has been independently validated against the vulnerable build.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
pupnp is a C SDK used to build UPnP device and control-point applications, and its HTTP messaging layer lives in upnp/src/genlib/net/http/. The parser at httpparser.c handles two body framing modes: a numeric Content-Length and chunked transfer encoding. For the numeric path, parser->content_length is populated and the callers in http_RecvMessage (httpreadwrite.c) compare it against the global g_maxContentLength, rejecting oversized bodies. For the chunked path, parser_parse_chunky_entity and parser_parse_chunky_body decode each chunk and append the decoded bytes to parser->msg.entity while leaving parser->content_length at zero, so the existing g_maxContentLength guards never fire. The result is the classic CWE-770 (Allocation of Resources Without Limits or Throttling) pattern: two code paths enforce a resource cap and a third equivalent path does not. The upstream commit 9ff9bc583ad8ee4ba022634434a7b71db9bd96e1 corrects this by extending both size checks in http_RecvMessage to also test parser->msg.entity.length against g_maxContentLength, restoring symmetry between the Content-Length and chunked framing paths. Because the vulnerable code is in shared HTTP receive logic, every protocol surface built on it - SOAP action handling, GENA eventing, the device miniserver, and control-point response processing - inherits the weakness.
Know when Pupnp gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Remote unauthenticated peer triggers the flaw over the network with low complexity and no interaction; impact is pure resource-exhaustion DoS, so A:H with C:N/I:N.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
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.
Technical POC Analysis
Weakness class: CWE-770 (Allocation of Resources Without Limits or Throttling).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A denial-of-service weakness in pupnp, the portable UPnP SDK embedded in many networked devices and IoT products, allows any unauthenticated host on the same network segment to exhaust memory and processing resources on affected endpoints, degrading or taking devices and their dependent services offline. Because the vulnerable SOAP, GENA, miniserver, and control-point HTTP paths are enabled by default, the exposure is likely broad and inherited by every product that embeds the library rather than confined to one application. Leadership should care because availability of LAN-connected devices, building controls, and customer premises equipment may hinge on third-party firmware updates the organization does not control directly.
Upstream pupnp 2.0.2 is identified in the advisory as containing the fix, but no vendor-released patch for the shipping products was identified in the provided context, so interim mitigations are required: disable UPnP, SOAP, GENA, miniserver, and control-point services where not operationally necessary; restrict UPnP HTTP endpoints to trusted LAN segments with firewall or ACL rules; rate-limit or inspect HTTP traffic carrying Transfer-Encoding: chunked toward affected devices; and enable process memory limits, watchdog restarts, and resource-exhaustion alerting on affected endpoints until a product-specific fix is available.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
A stack overflow in pupnp before version 1.14.5 can cause the denial of service through the Parser_parseDocument() funct
The Portable SDK for UPnP Devices is an SDK for development of UPnP device and control point applications. Rated critica
Denial of service in pupnp (libupnp) releases prior to 22.0.4 lets remote unauthenticated attackers stall the UPnP minis
Denial of service in pupnp (portable UPnP SDK) versions prior to 2.0.2 affects remote, unauthenticated deployments whose
Integer overflow in pupnp's HTTP Content-Length parser (raw_to_int in upnp/src/genlib/net/http/httpparser.c) allows a re
Port confusion in pupnp's URI parser allows remote unauthenticated attackers to bypass port-based access controls by sup
Stack exhaustion in pupnp (libupnp) before 2.0.0 allows an unauthenticated attacker on the local or adjacent network to
EUVD-2026-102929
NVD
CVE.org
GitHub
Exploit-DB