Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V4 - API and Web Service HTTP request consistency
|
| Impact | CVSS 4.8 with network vector (AV:N), high complexity (AC:H), and no privilege or user interaction required reflects moderate risk. The AC:H indicates difficulty triggering the condition reliably, likely due to timing sensitivity on keep-alive connections and server-side buffering behavior. EPSS and KEV status are not provided in available intelligence, so real-world exploitation rates cannot be assessed directly. However, HTTP Request Smuggling (CWE-444) is a well-understood attack class with published techniques; the difficulty (AC:H) suggests this specific variant may require specific server configurations or connection handling. The impact is limited to confidentiality and integrity (C:L, I:L) with no availability impact, and it cannot escalate privileges (S:U). For security-conscious deployments using cpp-httplib in HTTP/1.1 mode with static file serving, this is a meaningful but not critical issue. Organizations deploying HTTP/2 or HTTP/3 are not affected, as those protocols eliminate request smuggling via framing. Risk priority depends on exposure: internal APIs or edge services are lower risk; publicly-facing APIs serving untrusted clients warrant immediate patching. |
| Exploit ScenarioDerived | An attacker sends a single HTTP/1.1 GET request to fetch a static file (e.g., /static/image.png), but includes a fully-formed HTTP request in the request body-for example, a POST to /admin/settings. The vulnerable server's static file handler returns the GET response without consuming the body bytes. Because the connection remains open (keep-alive), the unread body (the injected POST request) remains on the TCP stream. The server's HTTP parser interprets it as a new, legitimate incoming request and processes the POST. The attacker can thus perform actions (changing settings, querying databases, accessing protected endpoints) that would normally require direct authentication, bypassing single-request security controls. High AC:H complexity suggests the attacker must carefully control timing or leverage specific server buffering behavior to reliably trigger the condition. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Mar 31, 2026
HTTP Request Smuggling in cpp-httplib prior to 0.40.0 allows remote attackers to inject arbitrary HTTP requests on HTTP/1.1 keep-alive connections by embedding malicious request data in the body of GET requests that the static file handler does not consume. The unread body bytes remain on the TCP stream and are interpreted as a new request, enabling information disclosure and request manipulation without authentication or user interaction.
RemediationAI
Vendor-released patch: cpp-httplib 0.40.0 and later. Update the cpp-httplib header file or dependency to version 0.40.0 or newer, which fixes the request body handling in the static file GET handler. No workaround for older versions is documented; patching is the primary mitigation. For immediate protection while patching is pending, disable HTTP/1.1 keep-alive by configuring connections to close after each response (Connection: close headers), or disable static file serving if not required. Reference the security advisory at https://github.com/yhirose/cpp-httplib/security/advisories/GHSA-jv63-rm9j-6jwc and release notes at https://github.com/yhirose/cpp-httplib/releases/tag/v0.40.0.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
cpp-httplib is a C++11 header-only HTTP/HTTPS library commonly used in embedded and standalone HTTP server implementations. The vulnerability stems from improper request body handling in the static file GET response handler, which violates HTTP/1.1 semantics (RFC 7230) requiring complete body consumption before pipelining. CWE-444 (Improper Restriction of Rendered UI Layers or Frames) maps to a broader category of request/response protocol handling flaws. The root cause is that when serving static files via GET requests, the handler does not read and discard the request body before returning the response. On keep-alive connections, this leaves unconsumed bytes on the TCP socket, which HTTP/1.1 clients interpret as the start of the next request in the pipeline. An attacker can craft a GET request with a body containing a fully-formed HTTP request (e.g., POST to /admin, HEAD to sensitive endpoints), which the server then processes as a legitimate second request.
Know when Cpp Httplib gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
3DescriptionNVD
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to version 0.40.0, cpp-httplib is vulnerable to HTTP Request Smuggling. The server's static file handler serves GET responses without consuming the request body. On HTTP/1.1 keep-alive connections, the unread body bytes remain on the TCP stream and are interpreted as the start of a new HTTP request. An attacker can embed an arbitrary HTTP request inside the body of a GET request, which the server processes as a separate request. This issue has been patched in version 0.40.0.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
HTTP request smuggling exploits inconsistencies in how front-end and back-end servers parse HTTP message boundaries.
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
More in Cpp Httplib
View allcpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to 0.27.0, a vulnerability allow
CVE-2025-53628 is a memory exhaustion vulnerability in cpp-httplib versions prior to 0.20.1 that allows unauthenticated
cpp-httplib is a C++ header-only HTTP/HTTPS server and client library. Rated high severity (CVSS 7.5), this vulnerabilit
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. In version 0.21.0, when many http head
CVE-2025-53629 is a Denial of Service vulnerability in cpp-httplib versions prior to 0.23.0 that allows unauthenticated
cpp-httplib versions prior to 0.30.1 are vulnerable to denial of service attacks due to insufficient validation of decom
cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. [CVSS 7.5 HIGH]
Cpp-Httplib versions up to 0.30.0 contains a vulnerability that allows attackers to add extra headers, modify request bo
cpp-httplib through 0.5.8 does not filter \r\n in parameters passed into the set_redirect and set_header functions, whic
HTTP response/header injection in cpp-httplib server versions prior to 0.44.0 allows remote unauthenticated attackers to
Remote denial of service in cpp-httplib prior to version 0.37.0 allows unauthenticated attackers to crash server process
A security vulnerability in cpp-httplib (CVSS 5.3) that allows attacker-controlled http headers. Risk factors: public Po
Same weakness CWE-444 – HTTP Request/Response Smuggling
View allSame technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: Medium| Product | Status |
|---|---|
| SUSE Linux Enterprise Server 16.0 | Fixed |
| SUSE Linux Enterprise Server 16.1 | Fixed |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Fixed |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Fixed |
EUVD-2026-17672
NVD
CVE.org
EPSS
Vulnrichment
GitHub
VulDB
Exploit-DB