Skip to main content

cpp-httplib CVE-2026-46527

| EUVDEUVD-2026-33426 HIGH
NULL Pointer Dereference (CWE-476)
2026-05-29 GitHub_M
8.7
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

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

  1. Recon
    Identify cpp-httplib server with trusted-proxy parsing enabled
  2. Delivery
    Craft HTTP request with malformed X-Forwarded-For header
  3. Exploit
    Send to public endpoint
  4. Install
    Parser returns empty IP vector
  5. C2
    get_client_ip() calls front() on empty vector
  6. Execute
    Process terminates abnormally
  7. Impact
    Sustain DoS via repeated requests

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the target application has called Server::set_trusted_proxies() with a non-empty trusted-proxy list - this is the explicit, non-default precondition stated in the advisory; servers that do not enable this proxy-aware feature are not reachable via this code path. Beyond that, no authentication, user interaction, or special privileges are required (CVSS PR:N/UI:N): any remote attacker who can deliver an HTTP request with an X-Forwarded-For header whose value parses to no valid IP segments can trigger the crash. The exploit limits to availability impact only (VC:N/VI:N/VA:H) - no code execution or data disclosure - and effectiveness depends on whether the affected process is supervised and auto-restarted versus running as a long-lived singleton.

Impact

Signals are mostly aligned on a real but bounded risk. The CVSS 4.0 vector AV:N/AC:L/AT:N/PR:N/UI:N with VA:H confirms remote, unauthenticated, low-complexity exploitation producing high availability impact and zero confidentiality/integrity impact - a clean DoS primitive. EPSS data was not provided, and the CVE is not in CISA KEV, so there is no evidence of in-the-wild use; classification is 'no public exploit identified at time of analysis.' A critical limiting factor not reflected in the CVSS base score is that the vulnerable code path is only reachable when the embedding application explicitly calls Server::set_trusted_proxies() with a non-empty list - a non-default configuration. Real-world priority should therefore be: high for production deployments running cpp-httplib behind a reverse proxy with trusted-proxy parsing enabled (common in containerized/edge setups), and low for default-configuration servers.

Exploit ScenarioDerived

An attacker identifies a service built on cpp-httplib (often via fingerprinting Server headers or known products) that sits behind a reverse proxy and uses Server::set_trusted_proxies(). They send a single HTTP request with a crafted X-Forwarded-For header whose tokens parse to zero valid IP segments (e.g., an empty value or solely invalid delimiters), triggering front() on an empty vector and crashing the worker process. Repeated requests cause sustained denial of service; no public exploit identified at time of analysis, but the trigger is trivial to construct from the advisory text.

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

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

Alert me

AnalysisAIv1 – May 29, 2026

Denial of service in cpp-httplib (C++ header-only HTTP/HTTPS library) versions prior to 0.44.0 allows remote unauthenticated attackers to crash server processes by sending an HTTP request with a malformed X-Forwarded-For header. The flaw is reachable only when the application has configured a non-empty trusted-proxy list via Server::set_trusted_proxies(). CVSS 4.0 scores this 8.7 (high) due to network reachability and high availability impact; no public exploit identified at time of analysis and the issue is not listed in CISA KEV.

RemediationAI

Vendor-released patch: upgrade to cpp-httplib 0.44.0 or later and rebuild all downstream binaries that statically include the header, per advisory GHSA-hg3g-vrg8-578g (https://github.com/yhirose/cpp-httplib/security/advisories/GHSA-hg3g-vrg8-578g). If immediate upgrade is not feasible, the most direct workaround is to remove or empty the Server::set_trusted_proxies() call so the vulnerable code path is never reached - note this disables proxy-aware client-IP resolution, which will cause downstream logging, rate limiting, and ACLs to see the proxy's IP rather than the real client. Alternatively, strip or sanitize incoming X-Forwarded-For headers at the upstream reverse proxy (e.g., nginx proxy_set_header) so malformed values never reach the cpp-httplib server, accepting the operational cost of an additional proxy layer enforcement.

Affected VersionsENISA

cpp-httplib < 0.44.0

Affected Packages

euvd cpp_httplib fix: 0.44.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 embedded single-file C++11 HTTP/HTTPS library maintained by yhirose, used to add HTTP server/client capability to native applications without external dependencies. The root cause is CWE-476 (NULL Pointer Dereference), though here it presents as a related undefined-behavior pattern: get_client_ip() invokes front() on an empty std::vector<> after the X-Forwarded-For parser returns no valid IP segments. Calling front() on an empty vector is undefined behavior in C++ and on typical libstdc++/libc++ implementations dereferences an invalid pointer, terminating the process; with ASan/UBSan the runtime emits an explicit diagnostic. The affected CPE is cpe:2.3:a:yhirose:cpp-httplib:*:*:*:*:*:*:*:* covering all versions prior to 0.44.0.

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 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
May 29, 2026 - 21:02 EUVD
CVSS changed
May 29, 2026 - 20:22 NVD
8.7 (HIGH)

DescriptionCVE.org

cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to 0.44.0, When the server has called Server::set_trusted_proxies() with a non-empty trusted-proxy list, an attacker can send an HTTP request that includes an X-Forwarded-For header whose value parses to no valid IP segments. The code path then executes get_client_ip(), which calls front() on an empty std::vector-undefined behavior in C++. On typical implementations this manifests as abnormal process termination (denial of service). With Sanitizers enabled, you get an explicit runtime diagnostic. This vulnerability is fixed in 0.44.0.

Executive ViewAI

Why It Matters

cpp-httplib, a widely-deployed C++ HTTP library, contains a denial-of-service vulnerability (CVE-2026-46527, CVSS 8.7) enabling remote attackers to crash server processes via malformed HTTP headers when proxy trust settings are enabled. Organizations running cpp-httplib versions prior to 0.44.0 with proxy trust features face immediate availability risk; no vendor patch exists as of this analysis.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Implement: (1) disable set_trusted_proxies() if proxy header processing is not operationally required; (2) application-layer validation to reject or sanitize malformed X-Forwarded-For values; (3) network or WAF-level filtering to block requests with invalid proxy headers; (4) request rate-limiting to reduce DoS impact window; (5) enhanced logging and alerting for exploitation attempts.

Threat Intelligence Overview

EPSS Score
0.0%
Top 86% exploitable
Social Media
1
Sightings
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor CIRCL 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.0%
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
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

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

Attack Technique

A null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

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: High
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
openSUSE Leap 16.0 Fixed

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