Skip to main content

curl EUVDEUVD-2026-100915

| CVE-2026-92392 HIGH
Use After Free (CWE-416)
2026-10-14 curl GHSA-7jvw-75gf-2h34
8.1
CVSS 3.1 · Vendor: curl
View

Attack ChainAIDerived

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

  1. Access
    Lure client to upload via HTTP/2
  2. Delivery
    Server sends RST_STREAM (HTTP_1_1_REQUIRED/REFUSED_STREAM)
  3. Exploit
    Trigger use-after-free of Curl_easy
  4. Execution
    Corrupt freed memory
  5. Impact
    Crash or execute code in client context

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory lifecycle management
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Privilege Escalation

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 victim is running curl/libcurl acting as an HTTP/2 client AND actively performing an upload to a server that the attacker controls or can manipulate; the server must send an HTTP/2 RST_STREAM frame carrying reason code HTTP_1_1_REQUIRED or REFUSED_STREAM during that upload to trigger the use-after-free. Limiting factors: the attacker cannot initiate the condition against an idle client - the victim must first establish an HTTP/2 upload to the malicious/attacker-influenced endpoint; the connection must negotiate HTTP/2 (not HTTP/1.1); and CVSS AC:H reflects that the precise timing/sequencing of the RST_STREAM relative to the in-flight upload is non-trivial to weaponize reliably. Affected versions span curl 8.12.0 through 8.22.0 per EUVD, so vulnerable builds are narrowed to that range.

Impact

This is a genuinely serious memory-corruption flaw (CWE-416 use-after-free of a struct Curl_easy) in curl, but the signals point to meaningful-but-not-emergency priority. The CVSS 3.1 vector (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H, 8.1 HIGH) reports network vector with no privileges, but crucially AC:H - exploitation is not trivial and depends on a specific server-side condition (malicious HTTP/2 RST_STREAM during an upload). This is corroborated by SSVC, which rates Exploitation as 'poc' (not active) and Automatable as 'no', while Technical Impact is 'total' - consistent with a UAF that can corrupt memory. EPSS is low (0.23%, 12th percentile), and there is no CISA KEV listing, so there is no evidence of widespread or active exploitation; the risk is latent rather than realized. A HackerOne report (4030333) and vendor advisory indicate proof-of-concept/exploit material exists, so defenders should not treat POC absence as a reason to delay. Note an important directional nuance that is NOT captured by the raw score: the victim here is the curl CLIENT, and the attacker is (or controls) the SERVER the client uploads to - so 'network, unauthenticated' does not mean an attacker can reach out and pop arbitrary curl installs; the client must first initiate an HTTP/2 upload to the attacker's endpoint. Net: patch promptly given curl's ubiquity and the total technical impact, but the combination of AC:H, Automatable:no, low EPSS, and no KEV argues against treating this as an actively-exploited drop-everything event.

Exploit ScenarioDerived

A victim uses curl (or an application linking libcurl) to upload data over HTTP/2 to a server the attacker controls or can influence. The server deliberately sends an RST_STREAM frame with reason HTTP_1_1_REQUIRED or REFUSED_STREAM mid-upload, triggering a use-after-free of the Curl_easy transfer object, which can crash the client or potentially lead to code execution in the client's context. Publicly available exploit code exists (HackerOne report and vendor advisory), though the high attack complexity means reliable exploitation requires precise control of server behavior.

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

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

Alert me

AnalysisAIv1 – Oct 15, 2026

Use-after-free in curl's HTTP/2 client code (curl 8.12.0 through 8.22.0) can corrupt memory when a server answers an in-progress upload with an HTTP/2 RST_STREAM frame carrying the HTTP_1_1_REQUIRED or REFUSED_STREAM reason code, freeing the internal struct Curl_easy object while it is still referenced by the transfer state machine. The flaw is remote and requires no authentication (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H, base 8.1), but exploitation is conditional: the victim must be uploading over a negotiated HTTP/2 connection to an endpoint the attacker controls or influences, and the RST_STREAM must land at the right point in the transfer lifecycle, which is why the assessed complexity is High. Publicly available exploit code exists (SSVC Exploitation: poc) and CISA's framework rates technical impact as total, yet there is no confirmed active exploitation (not in CISA KEV) and EPSS is low at 0.23% (12th percentile); a vendor patch is available. The same flaw affects libcurl and therefore every downstream application and distribution shipping an affected build.

RemediationAI

Upgrade to the patched curl/libcurl build identified in the vendor advisory - see the upstream notice at https://curl.se/docs/CVE-2026-92392.html (and the JSON form at https://curl.se/docs/CVE-2026-92392.json) together with the project security page https://curl.se/docs/security.html; Linux distributions should track their own fixed package versions, for example the Ubuntu notice at https://ubuntu.com/security/notices/USN-8927-1, and the oss-security thread at https://seclists.org/oss-sec/2026/q4/154 for coordinated release details. If an immediate upgrade is not possible, the most direct compensating control is to keep the client off the vulnerable code path by forcing HTTP/1.1 for affected transfers - for the curl tool with --http1.1, or in libcurl by setting CURLOPT_HTTP_VERSION to CURL_HTTP_VERSION_1_1 - which avoids the HTTP/2 RST_STREAM handling entirely; the trade-off is loss of HTTP/2 multiplexing, header compression, and any server that refuses HTTP/1.1, so this is a stopgap rather than a fix. Because triggering the bug requires an attacker-controlled or attacker-influenced HTTP/2 endpoint receiving an upload, additionally restrict upload operations to trusted destinations, avoid pushing data to untrusted or user-supplied URLs from curl/libcurl, and treat automatic HTTP/2 negotiation with unknown servers as untrusted; these measures reduce exposure but do not remove it when the endpoint is genuinely malicious and the application cannot avoid uploading to it. Where feasible, rebuild affected applications against the patched libcurl and run upload workloads under memory-hardening and crash-detection instrumentation to catch any residual corruption, noting that this only improves detection and does not mitigate the underlying use-after-free.

Affected VersionsENISA

curl 8.16.0 ≤8.16.0
curl 8.19.0 ≤8.19.0
curl 8.14.1 ≤8.14.1
curl 8.18.0 ≤8.18.0
curl 8.12.0 ≤8.12.0
curl 8.13.0 ≤8.13.0
curl 8.21.0 ≤8.21.0
curl 8.12.1 ≤8.12.1
curl 8.17.0 ≤8.17.0
curl 8.20.0 ≤8.20.0
curl 8.22.0 ≤8.22.0
curl 8.15.0 ≤8.15.0
curl 8.14.0 ≤8.14.0

Affected Packages

euvd curl no fix

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

The root cause is CWE-416 (Use After Free) in curl's HTTP/2 handling of stream resets during uploads. In HTTP/2, a server can terminate a client-initiated stream with RST_STREAM; two reason codes are semantically special to curl: REFUSED_STREAM tells the client the stream was never processed and may be safely retried, while HTTP_1_1_REQUIRED tells the client the server wants the request re-issued over HTTP/1.1. curl's upload path reacts to these resets by tearing down or re-driving transfer state, and in the affected 8.12.0-8.22.0 range that teardown can release the struct Curl_easy (the per-transfer handle that owns connection, stream, and callback state) while other parts of the HTTP/2 stream and transfer machinery still hold or later dereference a pointer to it - a classic dangling-pointer condition that can be turned into memory corruption, information disclosure, or a crash. Only the HTTP/2 code path is implicated; the attack surface is the client side of an upload, meaning curl/libcurl acting as an HTTP/2 client rather than as a server, and only when the peer connection actually negotiated HTTP/2 (h2) rather than HTTP/1.1. CPE coverage is cpe:2.3:a:curl:curl:*:*:*:*:*:*:*:*, but because the vulnerable object lives in the shared library, any product statically or dynamically linking libcurl inherits the exposure; EUVD tracks it as EUVD-2026-100915, and the flaw was reported by the curl project itself.

Know when Curl 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 (curl) PRIMARY 8.1 HIGH
AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 8.1 HIGH

Server-triggered during a client upload so AV:N/PR:N, but AC:H because it needs a specific HTTP/2 RST_STREAM sequence mid-transfer; a UAF plausibly yields full C/I/A impact.

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

Primary rating from Vendor (curl).

CVSS VectorVendor: curl

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

Lifecycle Timeline

3
CVSS changed
Oct 15, 2026 - 11:22 NVD
8.1 (HIGH)
CVE Published
Oct 14, 2026 - 07:46 cve.org
UNKNOWN (no severity yet)
CVE Published
Oct 14, 2026 - 07:46 cve.org
HIGH 8.1

DescriptionCVE.org

During an upload, curl mishandles HTTP/2 RST_STREAM received from the server (with reason HTTP_1_1_REQUIRED or REFUSED_STREAM) leading to a use after free of a struct Curl_easy object.

Latest POC

1 public PoC link from packetstorm

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

A high-severity memory-safety flaw in curl and libcurl versions 8.12.0 through 8.22.0 can crash or potentially corrupt client processes when they upload over HTTP/2 to an attacker-controlled or influenced server, creating availability and integrity risk for applications, CI/CD pipelines, and embedded services that rely on these libraries. Publicly available exploit code exists, but there is no confirmed active exploitation (not in CISA KEV) and EPSS is low, so immediate broad compromise is not indicated. Leadership should still prioritize remediation because curl/libcurl is pervasive; patch available per vendor advisory.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Model

5 threats: Denial of Service, Elevation of Privilege, Information Disclosure and 2 more

4-step attack chain with trust boundaries and controls

Full threat model - attack chain, trust boundaries, controls per stage and evidence - is part of the Pro and Business plans.

Threat Intelligence Overview

EPSS Score
0.2%
Top 88% exploitable
Prevalence
Ubiquitous
curl/libcurl is embedded across Linux, apps, and devices worldwide
Social Media
7
Sightings
Data Quality
5 sources
Confidence: Medium

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.2%
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
Total

Priority Score

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

Attack Technique

Use-after-free vulnerabilities occur when a program continues to access memory through a pointer after that memory has been deallocated.

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

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

More in Curl

View all
CVE-2021-22901 HIGH POC
8.1 Jun 11

curl 7.75.0 through 7.76.1 suffers from a use-after-free vulnerability resulting in already freed memory being used when

CVE-2013-0249 HIGH POC
7.5 Mar 08

Stack-based buffer overflow in the Curl_sasl_create_digest_md5_message function in lib/curl_sasl.c in curl and libcurl 7

CVE-2015-3145 HIGH
7.5 Apr 24

The sanitize_cookie_path function in cURL and libcurl 7.31.0 through 7.41.0 does not properly calculate an index, which

CVE-2022-32206 MEDIUM POC
6.5 Jul 07

curl < 7.84.0 supports "chained" HTTP compression algorithms, meaning that a serverresponse can be compressed multiple t

CVE-2022-32207 CRITICAL POC
9.8 Jul 07

When curl < 7.84.0 saves cookies, alt-svc and hsts data to local files, it makes the operation atomic by finalizing the

CVE-2022-43551 HIGH POC
7.5 Dec 23

A vulnerability exists in curl <7.87.0 HSTS check that could be bypassed to trick it to keep using HTTP. Rated high seve

CVE-2022-32221 CRITICAL POC
9.8 Dec 05

When doing HTTP(S) transfers, libcurl might erroneously use the read callback (`CURLOPT_READFUNCTION`) to ask for data t

CVE-2018-0500 CRITICAL POC
9.8 Jul 11

Curl_smtp_escape_eob in lib/smtp.c in curl 7.54.1 to and including curl 7.60.0 has a heap-based buffer overflow that mig

CVE-2022-32205 MEDIUM POC
4.3 Jul 07

A malicious server can serve excessive amounts of `Set-Cookie:` headers in a HTTP response to curl and curl < 7.84.0 sto

CVE-2025-9086 HIGH POC
7.5 Sep 12

1. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable, no authentication required, low attack co

CVE-2023-23914 CRITICAL POC
9.1 Feb 23

A cleartext transmission of sensitive information vulnerability exists in curl <v7.88.0 that could cause HSTS functional

CVE-2023-27534 HIGH POC
8.8 Mar 30

A path traversal vulnerability exists in curl <8.0.0 SFTP implementation causes the tilde (~) character to be wrongly re

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