{"id":"CVE-2026-57487","summary":"libupnp chunked HTTP bodies can bypass g_maxContentLength and be fully buffered","details":"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-\u003econtent_length at zero while parser_parse_chunky_entity and parser_parse_chunky_body accumulate decoded bytes in parser-\u003emsg.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.","aliases":["GHSA-gcj7-j9f7-q84c"],"modified":"2026-10-17T07:06:51.925446630Z","published":"2026-10-16T15:33:56.394Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/57xxx/CVE-2026-57487.json","cna_assigner":"GitHub_M","cwe_ids":["CWE-770"]},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/57xxx/CVE-2026-57487.json"},{"type":"FIX","url":"https://github.com/pupnp/pupnp/commit/9ff9bc583ad8ee4ba022634434a7b71db9bd96e1"},{"type":"WEB","url":"https://github.com/pupnp/pupnp/releases/tag/release-2.0.2"},{"type":"ADVISORY","url":"https://github.com/pupnp/pupnp/security/advisories/GHSA-gcj7-j9f7-q84c"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-57487"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/pupnp/pupnp","events":[{"introduced":"0"},{"fixed":"280cff736ee0a2384d8a67011382e6fe76a51167"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"2.0.2"}],"source":"AFFECTED_FIELD"}}],"versions":["release-2.0.1","release-2.0.0","release-1.18.5","release-1.14.30","release-1.18.4","release-1.18.3","release-1.18.2","release-1.18.1","release-1.18.0","release-1.14.29","release-1.14.28","release-1.14.27","release-1.14.26","release-1.14.25","release-1.14.24","release-1.14.23","release-1.14.22","release-1.14.21","release-1.14.20","release-1.14.19","release-1.14.18","release-1.14.17","release-1.14.16","release-1.14.15","release-1.14.14","release-1.14.13","release-1.14.12","release-1.14.11","release-1.14.10","release-1.14.9","release-1.14.8","release-1.14.7","release-1.14.6","release-1.14.5","release-1.14.4","release-1.14.3","release-1.14.2","release-1.14.1","release-1.14.0","release-1.12.0","release-1.10.1","release-1.10.0","release-1.8.4","release-1.8.3","release-1.8.2","release-1.8.1","release-1.8.0","last_svn_trunk"],"database_specific":{"vanir_signatures_modified":"2026-10-17T07:06:51Z","source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-57487.json","vanir_signatures":[{"deprecated":false,"digest":{"function_hash":"52107601416279361396342264133200996176","length":476},"id":"CVE-2026-57487-69243614","signature_type":"Function","signature_version":"v1","source":"https://github.com/pupnp/pupnp/commit/280cff736ee0a2384d8a67011382e6fe76a51167","target":{"file":"ixml/test/poc_ghsa_q54q.c","function":"main"}},{"deprecated":false,"digest":{"threshold":0.9,"line_hashes":["334027813865936129438216410789017650661","54295986294101972822852762588617473092","55486358970535260111721862803837298368","479395375871184399048480116120362544"]},"id":"CVE-2026-57487-faedecba","signature_type":"Line","signature_version":"v1","source":"https://github.com/pupnp/pupnp/commit/280cff736ee0a2384d8a67011382e6fe76a51167","target":{"file":"ixml/test/poc_ghsa_q54q.c"}}]}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}]}