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.
Conclusion & alert: CVE-2026-31870 is rated Exploit Available (51.8/100): CVSS High severity, with low exploitation likelihood (EPSS 0.06%). Core evidence: 1 public exploit reference(s) are indexed (Exploit-DB). Mandatory action: Public exploits are available—assess exposure, apply mitigations, and prioritize patching.
Risk is dynamic; we continuously reassess and refresh what is shown on this page as upstream context changes.
| EDB-ID | Source | Kind | Published | Link |
|---|---|---|---|---|
| — | nvd_ref | exploit_tag | Exploit-DB ↗ |
EPSS lead: Daily EPSS estimates relative likelihood of exploitation; percentile ranks this CVE among scored vulnerabilities (higher = more severe relative rank).
| # | Date | Old EPSS score | New EPSS score | Delta (New - Old) |
|---|---|---|---|---|
| 1 | 2026-03-12 | — | 0.06% | — |
Full EPSS history (1 record total)
CVSS metrics for this CVE.
| Base score | Version | Severity | Vector | Exploitability | Impact | Score source |
|---|---|---|---|---|---|---|
| 7.5 | 3.1 | HIGH |
|
3.9 | 3.6 | [email protected] |
| vendor | priority | summary | link |
|---|---|---|---|
debian
|
not yet assigned | CVE-2026-31870 not yet assigned priority: Debian including 1 source packages (cpp-httplib), 4 status rows across 4 suites (bookworm, forky, sid, trixie): open 2, resolved 2. | https://security-tracker.debian.org/tracker/CVE-2026-31870 |
redhat
|
high | — | https://access.redhat.com/security/cve/CVE-2026-31870 |
suse
|
high | CVE-2026-31870 severity important: SUSE including 2 source package names (cpp-httplib, libcpp-httplib0_22), 4 product×package rows across 2 product lines (SUSE Linux Enterprise Server 16.0, SUSE Linux Enterprise Server for SAP applications 16.0): Known Not Affected 4. | https://www.suse.com/security/cve/CVE-2026-31870/ |
ubuntu
|
medium | CVE-2026-31870 medium priority: Ubuntu including 1 source packages (cpp-httplib), 4 status rows across 4 suites (jammy, noble, questing, upstream): needs-triage 4. | https://ubuntu.com/security/CVE-2026-31870 |
| Vendor | Product | Version | Raw CPE |
|---|---|---|---|
| yhirose | cpp-httplib | < 0.37.1 | cpe:2.3:a:yhirose:cpp-httplib:*:*:*:*:*:*:*:* |
| URL | Tags |
|---|---|
| https://github.com/yhirose/cpp-httplib/security/advisories/GHSA-39q5-hh6x-jpxx | Exploit Mitigation Vendor Advisory |