Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversHalloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
Skip to content
World desk4 min

curl 8.23.0 Patches HTTP/2 Upload Flaw After PoC Demonstrates Client-Side Code Execution

A high-severity curl and libcurl HTTP/2 upload use-after-free could enable client-side code execution under tightly controlled conditions. Upgrade to 8.23.0 or a fixed branch release, or force HTTP/1.1 temporarily.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

curl has fixed a high-severity use-after-free in HTTP/2 upload handling after a proof of concept showed that a malicious receiving server could reach client-side code execution in tightly controlled conditions. The practical response is to update curl or libcurl, or force affected uploads to HTTP/1.1 until a fixed build is deployed.

What CVE-2026-92392 affects

CVE-2026-92392 affects both the curl command-line program and applications that embed libcurl. The vulnerable range is curl and libcurl 8.12.0 through 8.22.0. The curl project published the advisory on October 14, 2026, after the issue was reported on September 15.

As an Amazon Associate I earn from qualifying purchases.

Fixed versions are 8.23.0, 8.14.3, 8.16.2 and 8.20.2, depending on the maintenance branch used by your distribution or product. A vendor package may carry the fix under a distribution-specific version number, so package changelogs and security trackers matter as much as the upstream version string.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The defect is in HTTP/2 upload processing. A client has to upload data to a server controlled by the attacker, the connection has to use HTTP/2, and the server certificate must pass the client’s normal certificate checks. Ordinary HTTP/1.1 transfers do not follow this code path.

Why the severity is High, not an automatic Critical

The reporter demonstrated a path from the memory-safety bug to client-side remote code execution. That demonstration depended on unusually precise knowledge of the target: the exact curl version and structure layout, CPU architecture, libc allocator behavior, heap arrangement, allocation effects from nghttp2 and OpenSSL, the geometry of a pinned CA bundle, timing across two transfers, and calibrated memory-leak and symbol offsets.

The public exploit also limits the command it can deliver to approximately 23 bytes. Daniel Stenberg, curl’s lead developer, said the most likely result of an attempted attack is a crash. The independent report describing the flaw said it had no reports of attacks using it. No broader prevalence figure, exploitation count or CVSS score was published with the available coverage.

Rank #2
Sale
The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws
  • Comes with secure packaging
  • It can be a gift item
  • Easy to read text

How the HTTP/2 use-after-free happens

  1. The server stalls the upload. It advertises an HTTP/2 flow-control window of zero, preventing the client from completing the upload, while returning part of a response.
  2. The server resets the stream. It sends an HTTP/2 RST_STREAM with reason HTTP_1_1_REQUIRED or REFUSED_STREAM. curl treats that reset as retryable and keeps the underlying connection available.
  3. Cleanup runs in the wrong order. curl marks the transfer finished before all remaining upload bytes have been flushed into the shared connection. Those bytes can then be parsed as a new request.
  4. A stale stream reference remains. The newly parsed stream still points to the original struct Curl_easy. If the application frees that easy handle, a later HTTP/2 frame can dereference the freed object.
  5. The proof of concept turns memory corruption into execution. Server-controlled data is placed in the freed area, a request is used to leak local addresses and defeat address-space layout randomization, and a function pointer is overwritten before curl calls it.

The independent exploit description used an upload of roughly 135 KB. That figure describes the reported scenario, not a universal trigger size.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What changed in the fix

The upstream correction is a six-line reorder in lib/multi.c. The HTTP/2 layer now releases its references to the easy handle only after leftover upload data has been flushed into the shared connection. That ordering prevents the connection from creating work that still points at an object the application has already freed.

What administrators and developers should do

Upgrade the standalone curl tool

  1. Check the installed release with curl --version.
  2. If it is between 8.12.0 and 8.22.0, install curl 8.23.0 or the fixed maintenance-branch build supplied by your operating-system vendor.
  3. Restart scripts, services or containers that use the replaced binary so they do not continue running an older copy.

Update applications using libcurl

Updating only the command-line executable does not protect a service that links to a separate libcurl library. Rebuild or replace the library in every application image, appliance, agent and statically linked binary that embeds it, then restart those processes.

Use HTTP/1.1 as a temporary mitigation

The command-line option --http1.1 requests HTTP/1.1 instead of HTTP/2. In an application, request CURL_HTTP_VERSION_1_1. This removes the vulnerable HTTP/2 upload path, but it can change connection behavior and eliminate HTTP/2 multiplexing, so test upload workflows and throughput before making it a permanent policy.

Backport the patch when an upgrade is not immediate

A local backport of the upstream change is a valid short-term option for a controlled build, but it requires rebuilding and redeploying every affected curl or libcurl consumer. It should be tracked as a temporary measure until a maintained fixed release is available.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choosing a response for each deployment

Response Patch completeness HTTP/2 exposure Deployment scope Compatibility trade-off
Upgrade to 8.23.0 or a fixed branch release Complete upstream fix HTTP/2 can remain enabled Requires updating the curl binary and every libcurl consumer Preserves normal protocol features
Apply the upstream reorder locally Fix is present, but maintenance is yours HTTP/2 can remain enabled Must rebuild and redeploy each custom build Requires patch validation and future merge work
Force HTTP/1.1 Does not repair the vulnerable code HTTP/2 upload path is avoided Can be set per command or in application configuration May remove multiplexing and alter performance or server compatibility
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Release context and limits of the disclosure

Version 8.23.0 fixed 24 CVEs in total. The curl project rated the other 23 issues Low; CVE-2026-92392 is the exceptional High-severity issue in that release. The advisory describes the flaw as “a C mistake (likely to have been avoided had we not been using C).”

The available reports establish a credible, demonstrated exploit path, not evidence that all HTTP/2 uploads are being attacked. They also do not establish how many systems are exposed or whether exploitation is occurring in the wild. Organizations should therefore treat the issue as a patching priority without assuming that every failed HTTP/2 upload indicates compromise.

Checks after remediation

  • Confirm the runtime version of both the curl executable and the libcurl library actually loaded by each service.
  • Review whether any component statically links an older copy that a package upgrade did not replace.
  • Search configuration and code for forced HTTP/2 settings and decide whether temporary HTTP/1.1 fallback is needed during rollout.
  • Retest uploads, retries, proxy paths and certificate pinning after the change, because the reported attack requires a validly authenticated TLS connection and a server-controlled upload endpoint.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.