cpp-httplib DoS: Negative chunk-size in chunked Transfer-Encoding
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · NVD. Fix status from CNA. Impact type from CWE-770.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
- Fix · CNA cpp-httplib (yhirose) Fixed in 0.43.4
Vendor assessments
Timeline
- 2026-10-02 Threatist record created from CVE-2026-45352
More yhirose Cpp-httplib vulnerabilities
- TI-2026-33163 cpp-httplib: HTTP header value percent-decoding in server-side `parse_header` enables CRLF injection CVSS 3.1CRITICAL 9.9
- TI-2026-18294 cpp-httplib vulnerable to a denial of service (DOS) using a zip bomb CVSS 4.0HIGH 8.7
- TI-2026-17313 cpp-httplib has CRLF injection in http headers CVSS 4.0HIGH 7.7
- TI-2026-22709 Uncontrolled resource consumption in yhirose cpp-httplib CVSS 3.1HIGH 7.5
- TI-2025-33556 cpp-httplib Unbounded Memory Allocation in Chunked/No-Length Requests Vulnerability CVSS 3.1HIGH 7.5
- TI-2025-32923 cpp-httplib has unlimited number of http header fields, which causes memory leak CVSS 3.1HIGH 7.5
Sources
- CVE-2026-45352 · CVE Program
- CVE-2026-45352 · NVD
- FIRST EPSS
- CVE-2026-45352 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences