---
id: "CVE-2026-57488"
kind: "vulnerability"
aliases: ["CVE-2026-57488"]
title: "pupnp: Content-Length truncation lets HTTP requests desync or stall"
severity: "high"
cvss: 7.1
epss: null
exploited: false
status: "open"
category: "package"
products: [{"name": "pupnp project pupnp", "fixed": ["2.0.2"], "affected": "< 2.0.2", "ecosystem": "vendor"}]
ecosystems: ["vendor"]
tags: ["c", "embedded", "iot", "linux", "package", "upnp"]
not_affected_if: ["no-network-listener", "version-2.0.2-or-later"]
published_at: "2026-10-16T16:18:44+00:00"
first_seen_at: "2026-10-23T21:57:13+00:00"
updated_at: "2026-10-25T03:36:42+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-57488", "first_seen_at": "2026-10-23T21:57:13+00:00"}]
---

# pupnp: Content-Length truncation lets HTTP requests desync or stall

pupnp, a C SDK for UPnP devices and control points, parses the HTTP Content-Length header with a 64-bit value cast to 32-bit int on 64-bit systems. A remote peer on the adjacent network can make the parser accept a body length different from the declared one, so leftover bytes are read as another request, or make a worker wait on a huge body and cause denial of service.

_Summary, check and fix written by a model from the sources; labelled as such._

## Affected

- vendor:pupnp project pupnp affected < 2.0.2 fixed 2.0.2

## How to check

- Check the installed pupnp version; affected builds are below `2.0.2`.
- Search your build or vendored sources for `raw_to_int` in `upnp/src/genlib/net/http/httpparser.c`.

## Fix

- Upgrade pupnp to `2.0.2` or later.

## Timeline

- 2026-10-23T21:57:13+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-57488

## From the sources

pupnp is an SDK for development of UPnP device and control point applications. Prior to 2.0.2, raw_to_int 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 INT_MAX 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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
