LiveActive security incident?Get immediate response
CVE Record

CVE-2026-45352: cpp-httplib DoS: Negative chunk-size in chunked Transfer-Encoding

cpp-httplib is a C++11 single-file header-only cross platform HTTP/HTTPS library. Prior to 0.43.4, negative chunk-size in chunked Transfer-Encoding causes unbounded memory allocation and process crash. The ChunkedDecoder::read_payload function in cpp-httplib (httplib.h) parses the chunk-size field of HTTP chunked transfer encoding using std::strtoul(). Per the C standard (§7.22.1.4), strtoul silently accepts a leading minus sign, performing unsigned wrap-around: strtoul("-2", …, 16) returns ULONG_MAX − 1 (0xFFFFFFFFFFFFFFFE). The library's only guard (line 12833) rejects ULONG_MAX (the result of "-1"), but any other negative value such as "-2" passes validation. The resulting near-maximum value is stored in chunk_remaining and controls how many bytes the server's read loop consumes from the network. This vulnerability is fixed in 0.43.4.

MediumCVSS 5.3Not KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

Software that embeds vulnerable cpp-httplib can be crashed by malformed chunked HTTP traffic. This is an availability issue, not data theft or code execution, based on the sources. Services directly exposed to the internet or receiving untrusted HTTP requests should prioritize upgrading to fixed version 0.43.4.

Executive priority

Treat this as a timely availability fix for services that embed cpp-httplib, especially public-facing systems. It does not indicate data compromise or code execution from the provided sources, but unauthenticated remote crash risk justifies prompt remediation during the next maintenance window.

Technical view

Before 0.43.4, ChunkedDecoder::read_payload parses chunk-size with std::strtoul(), which accepts leading minus signs and wraps most negative values to near-maximum unsigned values. The guard catches only ULONG_MAX, so other negative values can drive excessive allocation or reads, causing process crash. CVSS 3.1 is 5.3, network exploitable, low complexity, no privileges required.

Likely exposure

Exposure is likely where cpp-httplib versions before 0.43.4 are used in HTTP or HTTPS services that accept untrusted chunked Transfer-Encoding requests. Embedded, single-header dependencies may be copied into source trees, so SBOM-only checks may miss vendored httplib.h copies.

Exploitation context

The source bundle does not show KEV listing or active exploitation evidence. The vulnerability is remotely reachable over the network with no authentication or user interaction, but the documented impact is limited to availability through memory exhaustion or process crash.

Researcher notes

Key evidence is the parser behavior: std::strtoul() accepts a leading minus sign and unsigned-wraps values. The advisory says only one wrapped value is rejected, allowing other negative chunk sizes to control chunk_remaining and trigger excessive resource use. The fixed version is 0.43.4.

Mitigation direction

  • Upgrade cpp-httplib to version 0.43.4 or later.
  • Search source trees for vendored httplib.h copies below 0.43.4.
  • Rebuild and redeploy services that statically embed cpp-httplib.
  • Review the GitHub advisory for any updated vendor guidance.
  • Monitor exposed services for unexplained crashes or memory exhaustion.

Validation and detection

  • Confirm all deployed builds use cpp-httplib 0.43.4 or later.
  • Check SBOMs and source repositories for cpp-httplib before 0.43.4.
  • Verify internet-facing services using cpp-httplib have been rebuilt after the upgrade.
  • Run safe regression tests confirming malformed chunk sizes are rejected without excessive allocation.
  • Review crash telemetry for availability incidents around HTTP chunked request handling.
Prepared
Confidence
high
Sources
3

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · low confidence lookup

CWE-1285: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
cwe · low confidence lookup

CWE-20: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
cwe · low confidence lookup

CWE-770: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2026-45352 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Medium
CVSS
5.3 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
3Timeline events
1ADP providers
2Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: pocAutomatable: yesTechnical Impact: partial

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
5.3CVSS 3.1MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L3.91.4GitHub_M

Vulnerability scoring details

Base CVSS 3.1 score

5.3Medium
CVSS 3.1 vector shape for CVE-2026-45352Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CISA-ADPCISA ADP Vulnrichment
other:ssvc

Source materials

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
yhirosecpp-httplib< 0.43.4Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.