CVE-2026-57488: pupnp: Integer truncation in HTTP Content-Length parsing enables request smuggling
pupnp is an SDK for development of UPnP device and control point applications. Prior to 2.0.2, rawtoint in upnp/src/genlib/net/http/httpparser.c parses Content-Length with strtol and casts the resulting long to a 32-bit int before the caller stores it as unsigned int. On LP64 systems, values greater than INTMAX can truncate or wrap, so the HTTP parser can accept a body length different from the declared value. A remote adjacent-network peer can use the resulting parser disagreement to leave bytes to be interpreted as another request in persistent or proxied contexts, or can make a worker wait for an extremely large body and cause denial of service. This issue is fixed in 2.0.2.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
pupnpto a version that resolves this vulnerability.Fixed in 2.0.2
Event History
Frequently Asked Questions
Which deployments are exposed to exploitation?
Deployments using pupnp before 2.0.2 on LP64 systems are affected. An attacker must be a remote peer on the adjacent network.
What does an attacker need to send?
The attacker needs to send an HTTP request with a Content-Length value greater than INT_MAX. The truncation or wrap can make the parser accept a body length that differs from the declared length.
What is the practical impact in persistent or proxied HTTP handling?
Remaining bytes can be interpreted as a subsequent request when parser disagreement occurs in persistent or proxied contexts. An attacker can also cause a worker to wait for an extremely large request body, resulting in denial of service.
What remediation is available?
Upgrade pupnp to version 2.0.2, which fixes the issue.