Skip to main content

curl CVE-2026-87862

MEDIUM
2026-10-14
View

Attack ChainAIDerived

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

  1. Access
    Position on victim network path
  2. Delivery
    Wait for HSTS cache re-import dropping entry
  3. Exploit
    Target now-unprotected host
  4. Execution
    Force HTTPS-to-HTTP downgrade
  5. Impact
    Intercept or tamper with cleartext traffic

Vulnerability Assessment

Exploitation Conditions

Requires the application/caller to have curl's HSTS feature explicitly enabled (CURLOPT_HSTS or --hsts) AND to use a persistent HSTS cache file that is exported and re-imported across runs, with at least one longer-lived (e.g. includeSubDomains/child) entry present to be dropped. The defect itself is a parsing/import logic error; actual damage further requires an active on-path network attacker to exploit the resulting loss of HSTS enforcement via a protocol downgrade. Limiting factors: HSTS is off by default in curl, persistence must be configured, and no harm occurs without a separately-positioned MITM attacker - so default and typical curl invocations (no HSTS state) are not affected.

Impact

No CVSS vector, EPSS score, KEV listing, or POC is provided in the input - the curl project self-rates this as severity LOW, and no independent exploitation signals are available to contradict or reinforce that. The flaw is a logic error in libcurl's HSTS cache import: when the persisted HSTS store is read back in, a longer-lived entry (described as a 'child', i.e. a subdomain/includeSubDomains-covered host) can be dropped, prematurely shortening or removing HSTS protection for that host. The real-world impact is therefore an indirect weakening of a downgrade defense rather than direct code execution or data theft, and it only matters to the subset of deployments that both enable curl's opt-in HSTS feature (CURLOPT_HSTS / --hsts) and rely on persistent HSTS caching across runs. Realizing any harm additionally requires an on-path/active network attacker to exploit the now-missing HSTS entry via an HTTPS→HTTP downgrade or MITM - a meaningful precondition that lowers practical risk well below what curl's enormous install base might otherwise suggest. Net assessment: low operational priority; patch as part of routine curl 8.23.0 maintenance rather than as an emergency. Signals are consistent (low severity, no exploitation evidence); the main gap is the total absence of a published CVSS vector, so the severity rests on the vendor's own LOW rating.

Exploit ScenarioDerived

A long-running application uses libcurl with a persisted HSTS cache and has previously recorded an includeSubDomains/long-lived HSTS entry. After the cache is re-imported, the longer-lived child entry is silently dropped, so curl no longer enforces HTTPS for that host; an attacker positioned on the network then downgrades the next request to cleartext HTTP to intercept or tamper with it. No public exploit identified at time of analysis.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available

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

Alert me

AnalysisAIv1 – Oct 14, 2026

Persisted HSTS state in curl/libcurl can be silently truncated when a previously exported HSTS cache is re-imported, because the import logic drops a longer-lived child entry (for example an includeSubDomains rule) in favor of a shorter-lived parent. Applications that explicitly enable curl's HSTS support via CURLOPT_HSTS or the --hsts option and persist that cache to disk across runs are affected; default curl usage with HSTS off is not. The resulting loss of HSTS enforcement only becomes exploitable if an on-path (man-in-the-middle) attacker is positioned to force a protocol downgrade to plaintext HTTP, so the curl project rates this severity LOW and no public exploit code or KEV/EPSS signal is present in the available data. Remote attackers, no authentication required per the assessed vector (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N), but attack complexity is high and confidentiality/integrity impact is limited.

RemediationAI

Upgrade to curl 8.23.0, the release in which this and the other twenty-three advisories in the batch are fixed; the curl security page (https://curl.se/docs/security.html) and the oss-security advisory (https://seclists.org/oss-sec/2026/q4/154) link the specific commit for each issue, and commercial long-term-support options are described at https://rock-solid.curl.dev. Because the flaw weakens persisted HSTS state, an interim, concrete workaround is to stop relying on an imported HSTS cache: remove --hsts / CURLOPT_HSTS persistence - or delete and stop re-importing any stored HSTS cache file - so the client cannot be silently downgraded on the basis of a truncated policy set. The trade-off is that cross-run HSTS enforcement is lost entirely, so where HTTPS enforcement matters, move it out of curl: enforce HSTS, TLS-only and redirect-to-HTTPS policy at the TLS terminator, forward proxy, load balancer, or application layer, and disable automatic scheme downgrades in the calling application. Applications that embed libcurl should be rebuilt against 8.23.0 and should audit any code path that writes out and reloads an HSTS cache for defensive completeness. If the caller must keep persistence, treat the reloaded cache as untrusted state: re-verify certificate validity on every connection and do not treat the presence of a cache file as proof of an enforced HSTS policy.

Affected ProductsAI

curl and libcurl are affected, specifically builds where HSTS handling is explicitly enabled and a persistent HSTS cache is exported and re-imported (CURLOPT_HSTS in libcurl, --hsts on the command line). The provided curl vulnerability table lists first-affected and last-affected version ranges for the sibling CVEs published in the same advisory batch, but the exact range for CVE-2026-87862 is not included in the supplied excerpt; the authoritative range should be read from the curl security page at https://curl.se/docs/security.html (and the advisory thread at https://seclists.org/oss-sec/2026/q4/154, with commercial support information at https://rock-solid.curl.dev). No CPE strings were supplied with the intel, so downstream inventory must be matched on installed libcurl/curl version rather than on a vendor-supplied CPE. All twenty-four issues in the batch, including this one, are fixed in curl 8.23.0, and the advisory states that each fix is accompanied by a link to the corresponding upstream commit.

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

curl and its embedded library libcurl implement the client side of HTTP Strict Transport Security (HSTS), storing policy entries (host, expiry, includeSubDomains flag) in an in-memory cache that callers can export and re-import across process runs through CURLOPT_HSTS and the command-line option --hsts. The defect here is in the cache import/merge logic: when an exported file is read back, an entry with a longer remaining lifetime that applies to a child host can be discarded in favor of a shorter-lived parent entry, effectively pruning the stronger policy. No CWE identifier is supplied in the source data, but the underlying class is a state-management/parsing logic error (improper preservation of security-relevant cached state) rather than memory corruption. Because HSTS is disabled by default and persistence must be explicitly configured, exposure requires a caller that both enables the feature and reuses a persisted cache; the security consequence materializes only when a network attacker is already positioned to intercept traffic and the dropped entry was the only control preventing a downgrade to plaintext HTTP. This is one of twenty-four issues fixed in curl 8.23.0, of which only CVE-2026-92392 (HTTP/2 upload use-after-free) is rated HIGH per the project; this one is rated LOW. Given curl's roughly twenty billion installations across devices, routers, printers and applications, the aggregate downstream surface is large, but the practical impact is bounded by the opt-in feature and the on-path attacker prerequisite.

Know when the next one hits your stack

  • 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

vuln.today AI 4.8 MEDIUM

AC:H because exploitation needs a specific dropped-entry cache state plus an on-path attacker; PR:N/UI:N as no auth or victim action is needed; C:L/I:L reflect downgrade-enabled interception, not full compromise.

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

Estimated by vuln.today — no official severity rating has been published for this CVE yet.

Description PRE-NVD

Disclosed via oss-security. NVD scoring and full description are pending.

Threat Intelligence Overview

Prevalence
Ubiquitous
libcurl ships in over twenty billion installations across countless devices
Data Quality
1 sources
Confidence: Low

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 MEDIUM
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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.

Attack Technique

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

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