DEBIAN-CVE-2026-31870
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to 0.37.1, when a cpp-httplib client uses the streaming API (httplib::stream::Get, httplib::stream::Post, etc.), the library calls std::stoull() directly on the Content-Length header value received from the server with no input validation and no exception handling. std::stoull throws std::invalid_argument for non-numeric strings and std::out_of_range for values exceeding ULLONG_MAX. Since nothing catches these exceptions, the C++ runtime calls std::terminate(), which kills the process with SIGABRT. Any server the client connects to — including servers reached via HTTP redirects, third-party APIs, or man-in-the-middle positions can crash the client application with a single HTTP response. No authentication is required. No interaction from the end user is required. The crash is deterministic and immediate. This vulnerability is fixed in 0.37.1.
DEBIAN-CVE-2026-31870
Primary source · Revision 1
Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.
Security context
Source reference: osv:DEBIAN-CVE-2026-31870
cpp-httplib
Source reference: /affected/0/package/name
- Affected versions
- 0.11.4+ds-1
Source reference:
/affected/0/versions0.11.4+ds-1+deb12u1Source reference:
/affected/0/versions0.11.4+ds-2Source reference:
/affected/0/versions0.11.4+ds-3Source reference:
/affected/0/versions0.13.1+ds-1Source reference:
/affected/0/versions0.14.0+ds-1Source reference:
/affected/0/versions0.14.1+ds-1Source reference:
/affected/0/versions0.14.1+ds-2Source reference:
/affected/0/versions0.14.2+ds-1Source reference:
/affected/0/versions0.14.3+ds-1Source reference:
/affected/0/versions0.14.3+ds-1.1Source reference:
/affected/0/versions0.14.3+ds-1.1~exp1Source reference:
/affected/0/versions0.15.3+ds-1Source reference:
/affected/0/versions0.15.3+ds-2Source reference:
/affected/0/versions0.15.3+ds-3Source reference:
/affected/0/versions0.16.0+ds-1Source reference:
/affected/0/versions0.16.3+ds-1Source reference:
/affected/0/versions0.16.3+ds-2Source reference:
/affected/0/versions0.18.0+ds-1Source reference:
/affected/0/versions0.18.7-1Source reference:
/affected/0/versions0.20.1+ds-3Source reference:
/affected/0/versions0.25.0+ds-1Source reference:
/affected/0/versions0.26.0+ds-2Source reference:
/affected/0/versions0.41.0+ds-1Source reference:
/affected/0/versions0.41.0+ds-2Source reference:
/affected/0/versions0.41.0+ds-3Source reference:
/affected/0/versions0.41.0+ds-3~bpo13+1Source reference:
/affected/0/versions - Fixed versions
- Not stated in this record
- Prerequisites
- Not stated in this record
cpp-httplib
Source reference: /affected/1/package/name
- Affected versions
- 0.18.7-1
Source reference:
/affected/1/versions0.18.7-1+deb13u1Source reference:
/affected/1/versions0.20.1+ds-3Source reference:
/affected/1/versions0.25.0+ds-1Source reference:
/affected/1/versions0.26.0+ds-2Source reference:
/affected/1/versions0.41.0+ds-1Source reference:
/affected/1/versions0.41.0+ds-2Source reference:
/affected/1/versions0.41.0+ds-3Source reference:
/affected/1/versions0.41.0+ds-3~bpo13+1Source reference:
/affected/1/versions - Fixed versions
- Not stated in this record
- Prerequisites
- Not stated in this record
cpp-httplib
Source reference: /affected/2/package/name
- Affected versions
- 0.18.7-1
Source reference:
/affected/2/versions0.20.1+ds-3Source reference:
/affected/2/versions0.25.0+ds-1Source reference:
/affected/2/versions0.26.0+ds-2Source reference:
/affected/2/versions0.41.0+ds-1Source reference:
/affected/2/versions0.41.0+ds-2Source reference:
/affected/2/versions0.41.0+ds-3~bpo13+1Source reference:
/affected/2/versions - Fixed versions
- 0.41.0+ds-3
Source reference:
/affected/2/ranges - Prerequisites
- Not stated in this record
Structured affected-version data
Original package identities and version rules from this source.
[
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
}
]
}
],
"package": {
"name": "cpp-httplib",
"purl": "pkg:deb/debian/cpp-httplib?arch=source&distro=bookworm",
"ecosystem": "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"
],
"database_specific": {
"source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-31870.json"
},
"ecosystem_specific": {
"urgency": "not yet assigned"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
}
]
}
],
"package": {
"name": "cpp-httplib",
"purl": "pkg:deb/debian/cpp-httplib?arch=source&distro=trixie",
"ecosystem": "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"
],
"database_specific": {
"source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-31870.json"
},
"ecosystem_specific": {
"urgency": "not yet assigned"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "0"
},
{
"fixed": "0.41.0+ds-3"
}
]
}
],
"package": {
"name": "cpp-httplib",
"purl": "pkg:deb/debian/cpp-httplib?arch=source&distro=forky",
"ecosystem": "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~bpo13+1"
],
"database_specific": {
"source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-31870.json"
},
"ecosystem_specific": {
"urgency": "not yet assigned"
}
}
]Publisher severity
No explicit severity was provided.
- Event
- #56745 · Revision 1
- Added to Heist Feed
- Publisher date