Skip to main content

cpp-httplib CVE-2026-54919

| EUVDEUVD-2026-42942 HIGH
Improper Certificate Validation (CWE-295)
2026-07-10 GitHub_M
7.4
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain MITM position on client's network path
  2. Delivery
    Wait for HTTPS/WSS connection to IP-literal host
  3. Exploit
    Present crafted untrusted certificate
  4. Execution
    Client skips chain validation and accepts
  5. Persist
    Decrypt and relay session
  6. Impact
    Read or modify sensitive traffic

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V12 - Secure Communication Certificate validation
Exploitation Conditions

Exploitation requires all of the following concrete conditions: the target application must be compiled with CPPHTTPLIB_MBEDTLS_SUPPORT (Mbed TLS backend, versions 0.31.0-0.46.1) or CPPHTTPLIB_WOLFSSL_SUPPORT (wolfSSL backend, versions 0.33.0-0.46.1); the client (SSLClient/Client in HTTPS mode, or WebSocketClient on Mbed TLS) must connect to an IP-literal host rather than a DNS hostname; server certificate verification must be enabled (the bug is that it is silently skipped anyway); and the attacker must occupy a man-in-the-middle position able to intercept and relay the victim's traffic. Limiting factors: the OpenSSL backend and non-IP-literal (hostname) connections are not affected, no authentication is needed by the attacker (PR:N) but the required interception position accounts for AC:H, and no user interaction is required.

Impact

The supplied CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N, base 7.4 High) is internally consistent with a MITM certificate-validation bypass: no authentication or user interaction is required, but AC:H correctly reflects the precondition that the attacker must already hold a privileged network position to intercept traffic. Impact is high to both confidentiality and integrity (read and modify traffic) with no availability impact. No EPSS score, KEV listing, POC, or SSVC decision data was provided; treat exploitation probability as unquantified rather than low. The practical risk is gated by two non-default conditions - the build must use the Mbed TLS or wolfSSL backend, and the client must connect by IP literal - which meaningfully narrows the affected population below the library's overall install base. This is a genuine authentication-integrity issue for the affected configuration rather than an inflated high-CVSS score, but it is opportunistic/positional, not remotely mass-exploitable.

Exploit ScenarioDerived

An attacker who can position themselves on the network path (rogue Wi-Fi, ARP/DNS spoofing, or a compromised upstream hop) waits for a cpp-httplib client built with the Mbed TLS or wolfSSL backend to make an HTTPS or WebSocket connection to a server addressed by IP literal. The attacker terminates the TLS session with a self-signed or otherwise untrusted certificate, which the client accepts without chain validation, letting the attacker transparently read and modify API credentials, tokens, or payloads. No public POC is currently identified, but the technique is standard MITM interception once the vulnerable configuration is in use.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 10, 2026

TLS certificate validation bypass in cpp-httplib's Mbed TLS backend (0.31.0-0.46.1) and wolfSSL backend (0.33.0-0.46.1) lets a man-in-the-middle attacker defeat HTTPS/WSS protection when a client connects to an IP-literal host with verification nominally enabled. SSLClient/Client in HTTPS mode skip certificate chain validation and the WebSocketClient on Mbed TLS skips verification entirely, so an intercepting attacker can present a crafted certificate and read or alter traffic. There is no public exploit identified at time of analysis and it is not listed in CISA KEV; the flaw is fixed in 0.47.0.

RemediationAI

Vendor-released patch: upgrade the bundled cpp-httplib header to version 0.47.0 or later (https://github.com/yhirose/cpp-httplib/releases/tag/v0.47.0), which corresponds to fix commit fa981cedae004ea9d946f1392b9dec22fac6fee6; because cpp-httplib is header-only, downstream projects must rebuild after replacing the header rather than relying on a shared-library update. If immediate patching is not possible, connect to servers by DNS hostname instead of IP literal (the vulnerable path is specific to IP-literal hosts), which avoids the bypass at the cost of requiring resolvable names and correct certificate SANs; alternatively, switch the build to the OpenSSL backend, which is not affected, accepting the porting effort and dependency change. As a positional mitigation, restrict clients to trusted network paths (e.g. VPN or mutual-authentication tunnels) to deny the MITM prerequisite, noting this does not fix the underlying validation gap. Consult advisory GHSA-8ffh-4p95-g3p2 for authoritative guidance.

Affected VersionsENISA

cpp-httplib 0.31.0, < 0.47.0

Affected Packages

euvd cpp_httplib_0_31_0 fix: 0.47.0

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 widely used single-file, header-only C++11 HTTP/HTTPS client/server library that can be compiled against different TLS backends via preprocessor flags. This issue affects only builds using CPPHTTPLIB_MBEDTLS_SUPPORT or CPPHTTPLIB_WOLFSSL_SUPPORT, not the default OpenSSL backend. The root cause is CWE-295 (Improper Certificate Validation): when the target host is an IP literal rather than a DNS name, the backend-specific verification path fails to enforce chain validation - and the Mbed TLS WebSocketClient path omits verification altogether - so a presented certificate is accepted without being tied back to a trusted CA. The affected CPE is cpe:2.3:a:yhirose:cpp-httplib. Because the trust anchor check is silently skipped, TLS still negotiates an encrypted session but provides no authentication of the peer, collapsing HTTPS/WSS to an unauthenticated encrypted channel.

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

Vendor (GitHub_M) PRIMARY 7.4 HIGH
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
vuln.today AI 7.4 HIGH

AC:H reflects the required MITM position and non-default backend/IP-literal preconditions; PR:N/UI:N as attacker needs no auth or victim action; C:H/I:H for read-and-modify, A:N.

3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
4.0 AV:N/AC:H/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
SUSE HIGH

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

1
Patch available
Jul 10, 2026 - 18:01 EUVD

DescriptionCVE.org

cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. In affected Mbed TLS backend versions from 0.31.0 through 0.46.1 and wolfSSL backend versions from 0.33.0 through 0.46.1, when cpp-httplib is built with CPPHTTPLIB_MBEDTLS_SUPPORT or CPPHTTPLIB_WOLFSSL_SUPPORT and a client connects to an IP-literal host with server certificate verification enabled, SSLClient and Client in HTTPS mode skip certificate chain validation and WebSocketClient on the Mbed TLS backend skips verification altogether, allowing a man-in-the-middle attacker positioned to intercept traffic to present a crafted certificate and read or modify the traffic. This issue is fixed in version 0.47.0.

Executive ViewAI

Why It Matters

Applications using cpp-httplib versions 0.31.0-0.46.1 (Mbed TLS) or 0.33.0-0.46.1 (wolfSSL) are vulnerable to man-in-the-middle attacks that can read and modify encrypted HTTPS/WSS communications. This represents a complete breakdown of encryption for affected applications, exposing all encrypted traffic to potential interception and tampering. Organizations must immediately upgrade to version 0.47.0 to restore secure communications.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
Medium
popular C++ HTTP library, but only non-default Mbed TLS/wolfSSL builds affected
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

37
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +37
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2025-66570 CRITICAL POC
10.0 Dec 05

cpp-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 HIGH POC
8.8 Jul 10

CVE-2025-53628 is a memory exhaustion vulnerability in cpp-httplib versions prior to 0.20.1 that allows unauthenticated

CVE-2025-46728 HIGH POC
7.5 May 06

cpp-httplib is a C++ header-only HTTP/HTTPS server and client library. Rated high severity (CVSS 7.5), this vulnerabilit

CVE-2025-52887 HIGH POC
7.5 Jun 26

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 HIGH POC
7.5 Jul 10

CVE-2025-53629 is a Denial of Service vulnerability in cpp-httplib versions prior to 0.23.0 that allows unauthenticated

CVE-2026-22776 HIGH POC
7.5 Jan 12

cpp-httplib versions prior to 0.30.1 are vulnerable to denial of service attacks due to insufficient validation of decom

CVE-2026-28435 HIGH POC
7.5 Mar 04

cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. [CVSS 7.5 HIGH]

CVE-2026-21428 HIGH POC
7.5 Jan 01

Cpp-Httplib versions up to 0.30.0 contains a vulnerability that allows attackers to add extra headers, modify request bo

CVE-2020-11709 HIGH POC
7.5 Apr 12

cpp-httplib through 0.5.8 does not filter \r\n in parameters passed into the set_redirect and set_header functions, whic

CVE-2026-45372 CRITICAL
9.9 May 29

HTTP response/header injection in cpp-httplib server versions prior to 0.44.0 allows remote unauthenticated attackers to

CVE-2026-29076 MEDIUM POC
5.9 Mar 07

Remote denial of service in cpp-httplib prior to version 0.37.0 allows unauthenticated attackers to crash server process

CVE-2025-66577 MEDIUM POC
5.3 Dec 05

A security vulnerability in cpp-httplib (CVSS 5.3) that allows attacker-controlled http headers. Risk factors: public Po

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Not-Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Not-Affected
SUSE Linux Enterprise Module for Development Tools 15 SP7 Not-Affected
SUSE Linux Enterprise Server 15 SP7 Not-Affected
SUSE Linux Enterprise Server 16.0 Not-Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy