Bug 2554083

Summary: CVE-2026-92392 curl: curl: HTTP/2 upload Use-After-Free [fedora-all]
Product: [Fedora] Fedora Reporter: Rafael Pandini <rpandini>
Component: curlAssignee: Jan Macku <jamacku>
Status: NEW --- QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: rawhideCC: jamacku, jmigacz, kdudka, lzaoral, msekleta, paul, vmihalko
Target Milestone: ---Keywords: Security, SecurityTracking
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: {"flaws": ["4ec412c8-f3ae-4622-987f-952fafd49838"]}
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Rafael Pandini 2026-10-16 12:34:26 UTC
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.

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.

INFO
----

This Use-After-Free flaw has been proven to be possible to convert into a
Remote Code Execution if a set of specific criteria are met by the malicious
server:

- the exact curl version object and structure layout used for the transfer is
  known and used to derive attack offsets;
- exact architecture details of the running curl needs to be known
- a known and compatible libc allocator build and heap layout
- nghttp2 and OpenSSL/TLS 1.3 behavior, including allocation effects around
  session tickets
- a pinned CA bundle and other input-dependent allocation geometry
- two parallel transfers and their scheduling/timing need to remain
- correctly calibrated libc leak and symbol offsets; and
- the exploit's current short-command constraint (approximately 23 bytes).

The Common Vulnerabilities and Exposures (CVE) project has assigned the name
CVE-2026-92392 to this issue.

CWE-416: Use After Free

Severity: High

This bug is considered a *C mistake* (likely to have been avoided had we not
been using C).

AFFECTED VERSIONS
-----------------

- Affected versions: curl 8.12.0 to and including 8.22.0
- Not affected versions: curl < 7.12.0 and >= 8.23.0
- Introduced-in: https://github.com/curl/curl/commit/cd9107e0128191b7b5396b

libcurl is used by many applications, but not always advertised as such!

This flaw also affects the curl command line tool.

SOLUTION
--------

- Fixed-in: https://github.com/curl/curl/commit/

RECOMMENDATIONS
---------------

 A - Upgrade curl to version 8.23.0

 B - Apply the patch to your local version

 C - Do not use HTTP/2

TIMELINE
--------

This issue was reported to the curl project on September 15, 2026.

curl 8.23.0 was released on October 14, 2026, coordinated with the publication
of this advisory.

CREDITS
-------

- Reported-by: Luna with Claude, Anthropic
- Patched-by: Stefan Eissing

Thanks a lot!