CVE-2026-45352
CVE-2026-45352 · cpp-httplib DoS: Negative chunk-size in chunked Transfer-Encoding
This page contains facts from public vulnerability sources. Check the original advisory before updating.
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to 0.43.4, negative chunk-size in chunked Transfer-Encoding causes unbounded memory allocation and process crash. The ChunkedDecoder::read_payload function in cpp-httplib (httplib.h) parses the chunk-size field of HTTP chunked transfer encoding using std::strtoul(). Per the C standard (§7.22.1.4), strtoul silently accepts a leading minus sign, performing unsigned wrap-around: strtoul("-2", …, 16) returns ULONG_MAX − 1 (0xFFFFFFFFFFFFFFFE). The library's only guard (line 12833) rejects ULONG_MAX (the result of "-1"), but any other negative value such as "-2" passes validation. The resulting near-maximum value is stored in chunk_remaining and controls how many bytes the server's read loop consumes from the network. This vulnerability is fixed in 0.43.4.
CVSS 5.3 · Medium · EPSS 0.3%
- Published
- Updated
Stack: system
Affected products and versions
cpp-httplib
- Versions
- < 0.43.4: Affected
No fix published
cpp-httplib Debian:12
- Versions
- 0.11.4+ds-1
- 0.11.4+ds-1+deb12u1
- 0.11.4+ds-2
- 0.11.4+ds-3
- 0.13.1+ds-1
- 0.14.0+ds-1
- 0.14.1+ds-1
- 0.14.1+ds-2
- 0.14.2+ds-1
- 0.14.3+ds-1
- 0.14.3+ds-1.1
- 0.14.3+ds-1.1~exp1
- 0.15.3+ds-1
- 0.15.3+ds-2
- 0.15.3+ds-3
- 0.16.0+ds-1
- 0.16.3+ds-1
- 0.16.3+ds-2
- 0.18.0+ds-1
- 0.18.7-1
- 0.20.1+ds-3
- 0.25.0+ds-1
- 0.26.0+ds-2
- 0.41.0+ds-1
- 0.41.0+ds-2
- 0.41.0+ds-3
- 0.41.0+ds-3~bpo13+1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
cpp-httplib Debian:13
- Versions
- 0.18.7-1
- 0.18.7-1+deb13u1
- 0.20.1+ds-3
- 0.25.0+ds-1
- 0.26.0+ds-2
- 0.41.0+ds-1
- 0.41.0+ds-2
- 0.41.0+ds-3
- 0.41.0+ds-3~bpo13+1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
cpp-httplib Debian:14
- Versions
- 0.18.7-1
- 0.20.1+ds-3
- 0.25.0+ds-1
- 0.26.0+ds-2
- 0.41.0+ds-1
- 0.41.0+ds-2
- 0.41.0+ds-3
- 0.41.0+ds-3~bpo13+1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
cpp-httplib Ubuntu:Pro:22.04:LTS
- Versions
- 0.9.9+ds-1
- 0.9.10+ds-1
- 0.10.1+ds-1
- 0.10.2+ds-1
- 0.10.3+ds-1
- 0.10.3+ds-1ubuntu0.1~esm1
- 0.10.3+ds-1ubuntu0.1~esm2
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
cpp-httplib Ubuntu:Pro:24.04:LTS
- Versions
- 0.13.1+ds-1ubuntu1
- 0.14.3+ds-1
- 0.14.3+ds-1.1
- 0.14.3+ds-1.1build1
- 0.14.3+ds-1.1build2
- 0.14.3+ds-1.1ubuntu0.1~esm1
- 0.14.3+ds-1.1ubuntu0.1~esm2
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
cpp-httplib Ubuntu:25.10
- Versions
- 0.18.7-1
- 0.18.7-1ubuntu0.25.10.1
- 0.18.7-1ubuntu0.25.10.2
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
cpp-httplib Ubuntu:26.10
- Versions
- 0.26.0+ds-2ubuntu3
- 0.26.0+ds-2ubuntu4
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
cpp-httplib Ubuntu:Pro:26.04:LTS
- Versions
- 0.18.7-1
- 0.26.0+ds-2ubuntu2
- 0.26.0+ds-2ubuntu3
- 0.26.0+ds-2ubuntu3+esm1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published