PHP2Shell: Read our blog on the critical RCE vulnerabilities affecting 70% of the Internet

CVE-2026-92392: 
cURL vulnerability analysis and mitigation

Overview

CVE-2026-92392 is a Use-After-Free (UAF) vulnerability in curl, titled "HTTP/2 upload Use-After-Free," affecting curl versions 8.12.0 through 8.22.0 (inclusive). During an HTTP/2 file upload, curl mishandles RST_STREAM frames received from the server with reason codes HTTP_1_1_REQUIRED or REFUSED_STREAM, leading to a use-after-free of a struct Curl_easy object. The vulnerability was reported on September 15, 2026, and publicly disclosed on October 14, 2026, coinciding with the release of curl 8.23.0. It is classified as High severity by the curl project, with an EPSS score of 0.0 at time of publication (curl Advisory, GitHub Advisory, Feedly).

Technical details

The root cause is CWE-416 (Use After Free): when a server sends an HTTP/2 RST_STREAM frame with reason HTTP_1_1_REQUIRED or REFUSED_STREAM during an active upload, curl incorrectly continues to reference a struct Curl_easy object after it has been freed. The vulnerability was introduced in commit cd9107e0128191b7b5396b9eb81bbd20c2d36755 and fixed in 8b0744af5b1b631da5b938ca31c3f9895ad5a321. The attack vector is network-based and requires the victim curl client to initiate an upload to a server controlled or compromised by the attacker; the server then sends the malicious RST_STREAM response to trigger the memory corruption. The curl advisory notes that converting this UAF to Remote Code Execution requires meeting a specific set of criteria, including knowledge of the exact curl version and object layout, architecture details, compatible libc allocator/heap layout, nghttp2 and OpenSSL/TLS 1.3 behavior, a pinned CA bundle, two parallel transfers with correct timing, and a short-command constraint of approximately 23 bytes (curl Advisory, curl JSON).

Impact

Successful exploitation can result in arbitrary code execution within the curl process or a crash (denial of service), depending on whether the attacker can satisfy the complex RCE preconditions. An unauthenticated attacker controlling a remote HTTP/2 server can trigger the use-after-free during any file upload operation by the victim, potentially compromising the confidentiality and integrity of data processed by the curl client. Both the curl command-line tool and applications using libcurl are affected, making the impact broad across any software that performs HTTP/2 uploads (curl Advisory, Feedly).

Exploitability

There is no public proof-of-concept exploit and no evidence of in-the-wild exploitation at the time of disclosure (Feedly). The EPSS score is 0.0, reflecting low current exploitation probability. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. While the curl project confirmed the UAF can theoretically be converted to RCE, doing so requires satisfying a highly specific and complex set of conditions, significantly limiting practical exploitability. The vulnerability was discovered by "Luna with Claude" (Anthropic), representing an AI-assisted security research finding (curl Advisory).

Exploitation steps

  1. Set up a malicious HTTP/2 server: Configure a server that accepts HTTP/2 connections and is capable of sending RST_STREAM frames with reason codes HTTP_1_1_REQUIRED or REFUSED_STREAM in response to upload requests.
  2. Lure the victim into uploading: Trick or position a vulnerable curl client (versions 8.12.0–8.22.0) into performing an HTTP/2 file upload (e.g., via curl -T <file> https://attacker-server/) to the attacker-controlled server.
  3. Trigger the RST_STREAM: During the upload, have the server send an HTTP/2 RST_STREAM frame with HTTP_1_1_REQUIRED or REFUSED_STREAM reason code, causing curl to free the struct Curl_easy object while still holding a reference to it.
  4. Achieve UAF/crash: The freed memory is accessed, resulting in a crash (denial of service) or, under highly specific conditions (known curl version/layout, architecture, heap state, parallel transfers, timing), potential arbitrary code execution in the curl process (curl Advisory).

Indicators of compromise

  • Network: Unexpected HTTP/2 RST_STREAM frames with error codes HTTP_1_1_REQUIRED (0x0d) or REFUSED_STREAM (0x7) received from servers during upload operations; connections to unfamiliar or suspicious HTTP/2 endpoints during file transfer activity.
  • Process: Abnormal termination (crash/segfault) of curl or applications using libcurl during HTTP/2 upload operations; core dumps from curl processes referencing freed Curl_easy structures.
  • Logs: Application or system logs showing curl crashes or segmentation faults during upload operations; error messages referencing HTTP/2 stream resets or unexpected server responses during uploads.

Mitigation and workarounds

The primary remediation is to upgrade curl to a patched version: 8.23.0 (main release), 8.20.2 (8.20.x branch), 8.16.2 (8.16.x branch), or 8.14.3 (8.14.x branch). As a temporary workaround, HTTP/2 support can be disabled (e.g., using --http1.1 flag with the curl command-line tool or CURLOPT_HTTP_VERSION set to CURL_HTTP_VERSION_1_1 in libcurl applications). Additionally, avoid performing uploads to untrusted or attacker-controlled servers until patches are applied (curl Advisory, GitHub Advisory).

Community reactions

The curl project's lead developer Daniel Stenberg published a detailed blog post titled "A UAF turned RCE" on October 14, 2026, explaining the technical complexity of converting the use-after-free into remote code execution (Daniel Haxx Blog). The Hacker News community discussed the release, and The Hacker News covered the story with the headline "curl patches HTTP/2 upload flaw after AI-assisted research found RCE potential" (The Hacker News). Notably, the vulnerability was discovered by an AI-assisted researcher ("Luna with Claude," Anthropic), sparking community discussion about AI-assisted vulnerability research. The release was part of a larger curl 8.23.0 update that addressed 24 CVEs total, which received broad coverage from security media including Heise and Linux security outlets (Heise).

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

bookworm

curl

Fixed

sid

curl: 8.23.0-1

Fixed

trixie

curl: 8.14.1-2+deb13u7

Fixed

Ubuntu

Fixed

bionic (esm-infra)

curl

Not Affected

devel

curl: 8.20.0-2ubuntu11.1

Affected

focal (esm-infra)

curl

Not Affected

jammy

curl

Not Affected

noble

curl

Not Affected

resolute

curl: 8.18.0-1ubuntu2.8

Fixed

trusty (esm-infra-legacy)

curl

Not Affected

xenial (esm-infra-legacy)

curl

Not Affected

RHEL / CentOS

Affected

RHEL 8

rust-toolset:rhel8/rust.src

Affected

RHEL 9

rust.src

Affected

RHEL 10

curl.src

Affected

Alpine

Fixed

edge

curl: 8.23.0-r0

Fixed

v3.21

curl: 8.14.1-r3

Fixed

v3.22

curl: 8.14.1-r4

Fixed

Source: This report was generated using AI

Related cURL vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-92390MEDIUM6.5
  • cURL logocURL
  • curl.src
NoYesOct 20, 2026
CVE-2026-92391LOW3.7
  • cURL logocURL
  • cpe:2.3:a:haxx:curl
NoYesOct 20, 2026
CVE-2026-92389LOW3.7
  • cURL logocURL
  • libcurl-devel
NoYesOct 20, 2026
CVE-2026-94266LOW3.3
  • cURL logocURL
  • cpe:2.3:a:haxx:curl
NoYesOct 20, 2026
CVE-2026-94265LOW3.1
  • cURL logocURL
  • cpe:2.3:a:haxx:curl
NoYesOct 20, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management