Skip to main content

Cpp Httplib CVE-2025-53628

| EUVDEUVD-2025-21053 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2025-07-10 security-advisories@github.com
8.8
CVSS 3.1 · GitHub Advisory
View

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
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.

Impact

CVSS 8.8 (High) with attack vector Network, low complexity, no privileges required, user interaction required signals substantial risk, but several factors warrant nuanced interpretation: (1) CVSS vector impact (C:H/I:H/A:H) may be overstated—this is primarily a Denial of Service (availability impact) rather than data breach or code execution; the confidentiality and integrity ratings likely reflect downstream consequences of service compromise rather than direct information disclosure; (2) Attack complexity is Low and requires Network access with no authentication, making it broadly exploitable; (3) User Interaction requirement (UI:R) suggests the vulnerability requires user-controlled input or a user visiting a malicious endpoint, which is partially mitigated by normal HTTP client behavior; (4) No confirmed KEV/CISA status or public POC availability noted, suggesting limited real-world exploitation pressure; (5) EPSS score not provided, but based on the profile (low-complexity, network-accessible, DoS-capable resource exhaustion), exploitation probability is likely moderate to high; (6) Relatedness to CVE-2025-53629 suggests a systematic review of input validation, potentially identifying additional variants. Real-world priority: High for internet-facing services or those receiving untrusted HTTP input, but medium for internal/trusted environments. This is a genuine availability threat, not a false-positive high-CVSS issue.

Exploit ScenarioDerived

An attacker crafts an HTTP GET request with a single header field (e.g., User-Agent) containing a multi-megabyte payload of repeated characters, or constructs a series of requests each with a large header to accumulate memory consumption. The request is sent to a cpp-httplib-based HTTP server (e.g., a REST API, web service, or embedded HTTP interface) running version < 0.20.1. The vulnerable parser allocates memory without enforcing size limits, consuming RAM linearly with the header size. With multiple concurrent requests or iterative attacks, the process exhausts available memory, leading to Out-of-Memory (OOM) conditions, process crash, or severe performance degradation. Example vector: POST /api/endpoint HTTP/1.1 Host: target.com X-Large-Header: [1GB of 'A' characters]

. No authentication or special privileges are required; the attacker only needs network access and the ability to send malformed HTTP. The UI:R flag likely reflects that the server operator must be "accepting" untrusted HTTP input (which is typical for public-facing HTTP services). No known public POC has been disclosed, but the vulnerability is straightforward to exploit once discovered.

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 – Mar 16, 2026

CVE-2025-53628 is a memory exhaustion vulnerability in cpp-httplib versions prior to 0.20.1 that allows unauthenticated remote attackers to cause denial of service by sending HTTP requests with arbitrarily large individual header lines, exploiting the absence of per-line size limits. The vulnerability affects any application using cpp-httplib as a C++ HTTP/HTTPS library component and requires only user interaction (UI:R) to trigger, with high impact across confidentiality, integrity, and availability. No active exploitation in the wild has been confirmed, but the fix availability and related CVE-2025-53629 suggest this was discovered during security review rather than active exploitation.

RemediationAI

Upgrade cpp-httplib to version 0.20.1 or later. Since cpp-httplib is header-only, update the header files in your project and recompile.; specificity: Version 0.20.1 includes fixes for CVE-2025-53628 (per-line limits) and related CVE-2025-53629 Workaround (Temporary): Implement a reverse proxy or load balancer (nginx, HAProxy, AWS ALB) in front of applications using cpp-httplib, configured with strict header size limits (e.g., nginx: client_max_header_size 8k; client_header_buffer_size 1k). This prevents oversized headers from reaching the vulnerable library.; effectiveness: High, but does not address direct client-to-server connections Defense-in-Depth: Restrict HTTP access to trusted networks or implement rate limiting on header reception. Monitor process memory usage for anomalous growth during HTTP request parsing.; effectiveness: Medium; mitigates but does not eliminate risk

Affected VersionsENISA

cpp-httplib < 0.20.1

Affected Packages

euvd cpp_httplib fix: 0.20.1

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 single-file, header-only HTTP/HTTPS library providing cross-platform HTTP client/server functionality. The vulnerability resides in the HTTP header parsing logic, where the library fails to enforce maximum length constraints on individual header lines during request processing. This falls under CWE-770 (Allocation of Resources Without Limits or Throttling), a classic resource exhaustion category where unbounded allocation occurs. Unlike typical HTTP implementations that define RFC 7230-compliant limits (commonly 8KB per header line), cpp-httplib's parser accepts lines of arbitrary length, allowing an attacker to construct requests with megabyte or gigabyte-sized single headers. When the library attempts to allocate memory for these oversized lines, it can exhaust heap memory, crash the process, or degrade performance. The affected CPE would be: cpe:2.3:a:cpp-httplib:cpp-httplib:*:*:*:*:*:*:*:* with versions <0.20.1.

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

GitHub Advisory PRIMARY 8.8 HIGH
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Ubuntu MEDIUM
SUSE HIGH

Primary rating from GitHub Advisory.

CVSS VectorGitHub Advisory

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

Lifecycle Timeline

3
Patch released
Mar 16, 2026 - 06:52 nvd
Patch available
PoC Detected
Aug 06, 2025 - 18:08 vuln.today
Public exploit code
CVE Published
Jul 10, 2025 - 20:15 nvd
HIGH 8.8

DescriptionGitHub Advisory

cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to 0.20.1, cpp-httplib does not have a limit for a unique line, permitting an attacker to explore this to allocate memory arbitrarily. This vulnerability is fixed in 0.20.1. NOTE: This vulnerability is related to CVE-2025-53629.

Executive ViewAI

Why It Matters

A memory exhaustion vulnerability in cpp-httplib versions prior to 0.20.1 allows attackers to trigger arbitrary memory allocation, potentially causing denial of service against applications using this library. Organizations using affected versions face service outages and potential system crashes; immediate assessment and patching are required to prevent exploitation.

Business Impact: High
Compensating Controls

Apply vendor patch. If immediate patching is not feasible, implement request rate limiting and HTTP header size restrictions at the network/WAF layer to constrain memory allocation attempts, though this does not eliminate the underlying vulnerability.

Threat Intelligence Overview

EPSS Score
0.0%
Top 91% exploitable
Exploit
POC
Public exploit code exists
Data Quality
6 sources
Confidence: High

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 Yes
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· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

64
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: +20
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-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

CVE-2026-28434 MEDIUM POC
5.3 Mar 04

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

Vendor StatusVendor

Ubuntu

Priority: Medium
cpp-httplib
Release Status Version
jammy needed -
noble needed -
plucky ignored end of life, was needs-triage
upstream released 0.20.1
questing needed -

Debian

Bug #1109340
cpp-httplib
Release Status Fixed Version Urgency
bookworm vulnerable 0.11.4+ds-1+deb12u1 -
forky, sid, trixie vulnerable 0.18.7-1 -
experimental fixed 0.25.0+ds-1 -
(unstable) fixed (unfixed) -

SUSE

Severity: High
Product Status
Container suse/sl-micro/6.0/baremetal-os-container:latest Container suse/sl-micro/6.1/baremetal-os-container:2.2.1-7.29 Image SL-Micro-Azure Image SL-Micro-BYOS-Azure Image SL-Micro-BYOS-EC2 Image SL-Micro-BYOS-GCE Image SL-Micro-EC2 Image SUSE-Multi-Linux-Manager-Proxy-BYOS-Azure Image SUSE-Multi-Linux-Manager-Proxy-BYOS-EC2 Image SUSE-Multi-Linux-Manager-Proxy-BYOS-GCE Image SUSE-Multi-Linux-Manager-Server-Azure-llc Image SUSE-Multi-Linux-Manager-Server-Azure-ltd Image SUSE-Multi-Linux-Manager-Server-BYOS-Azure Image SUSE-Multi-Linux-Manager-Server-BYOS-EC2 Image SUSE-Multi-Linux-Manager-Server-BYOS-GCE Image SUSE-Multi-Linux-Manager-Server-EC2-llc Image SUSE-Multi-Linux-Manager-Server-EC2-ltd Affected
Container suse/sl-micro/6.0/toolbox:13.2-9.1 Affected
SUSE Linux Enterprise Server 16.0 SUSE Linux Enterprise Server for SAP applications 16.0 Fixed
SUSE Package Hub 15 SP6 Fixed
openSUSE Leap 15.6 Fixed

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