Vulnerabilities · Application Security
curl Fixes HTTP/2 Upload Flaw That Could Let Malicious Servers Run Code on Clients
A flaw in curl's HTTP/2 upload process could let a hostile server crash or, in rare cases, run code on the user's machine. The bug is fixed in curl 8.23.0. No attacks are known in the wild.
Ross GrantUpdated 3 min read
The short version
A bug in curl, a tool used for uploading and downloading files, meant that uploading to a malicious server could let that server crash your program or, in rare cases, run code on your computer. The bug is fixed in the latest version. If you use curl or software that relies on it, update as soon as possible.
What happened?
A flaw in curl's HTTP/2 upload handling allowed a malicious server to corrupt the client's memory, potentially leading to code execution on the user's machine. The bug, present in curl and libcurl versions 8.12.0 to 8.22.0, was fixed in version 8.23.0 on 14 October 2026. No real-world attacks have been reported.
What the curl HTTP/2 Upload Flaw Involved
curl, a widely used tool and library for transferring data, has patched a serious vulnerability in how it handles HTTP/2 uploads. According to The Hacker News (opens in a new tab), the flaw allowed a server receiving an upload to corrupt the memory of the client machine. A researcher demonstrated that this could be used to execute code on the client's computer, though the curl team says a real attack would almost always just crash the program.
The bug, tracked as CVE-2026-92392, affected both the curl command-line tool and the libcurl library in versions 8.12.0 through 8.22.0. Many other programs use libcurl for file transfers, so the impact could be broad. The fix was released on 14 October 2026 in curl 8.23.0. The project cut its usual release cycle short to address the issue quickly.
Who Is at Risk and What Should You Do?
Anyone using curl or libcurl versions 8.12.0 to 8.22.0 with HTTP/2 support enabled could be affected. The attack requires the client to upload a file of about 135KB to a server controlled by the attacker, and the server's certificate must pass the client's checks. By default, libcurl negotiates HTTP/2 for HTTPS URLs if the server offers it and the library is built with HTTP/2 support.
curl recommends upgrading to version 8.23.0 or applying the fix to your local build. For those who cannot update immediately, the advice is to avoid using HTTP/2 by forcing HTTP/1.1 (using the --http1.1 option in curl or setting CURLOPT_HTTP_VERSION to CURL_HTTP_VERSION_1_1 in applications). Debian 13 users should install the security update, while Debian 12 is not affected.
How the Attack Works
The flaw is a use-after-free bug. In simple terms, this means the program tries to use memory after it has been released, which can lead to crashes or, in rare cases, let an attacker run their own code. Here, a malicious server can stall an upload, then reset the connection in a way that confuses curl. This causes curl to reuse memory that has already been freed. If the attacker knows the exact details of the client's system and times things perfectly, they can use this to overwrite a function pointer and potentially run code on the victim's machine.
However, the exploit is complex. It requires precise knowledge of the client's curl version, system architecture, memory layout, and more. The curl team says the most likely outcome is a crash rather than successful code execution.
Timeline and Response
The vulnerability was reported to curl on 15 September 2026 via HackerOne. The curl team confirmed it within hours and released a fix on 14 October 2026, two weeks ahead of schedule. The researcher credited is Luna Tong of Anthropic, who used Anthropic's new OSS Scanner tool to find the bug. The public write-up and a proof-of-concept were released alongside the fix.
No attacks using this flaw have been reported in the wild. The curl project rates the severity as High (its first High since October 2023), but not Critical, due to the difficulty of a real-world exploit. The fix itself is a small change in the code that ensures memory is not reused in this risky way.
Lessons and Broader Context
The curl team notes that this kind of bug is a risk in code written in languages like C, which do not automatically manage memory. They say a memory-safe language would likely have prevented the issue, but there are no plans to rewrite curl. The project has been working to reduce similar risks by changing how it handles internal pointers.
This incident highlights the importance of prompt patching and careful memory management in widely used software. It also shows the growing role of automated tools, including AI, in finding security flaws in open-source projects.
Claimed vs confirmed
- Confirmed
A malicious server can use the flaw to execute code on the client's machine.
curl's advisory and the researcher's proof-of-concept show code execution is possible, but curl says a real attack would likely just crash the client.
- Confirmed
No attacks using this flaw have been reported in the wild.
The Hacker News and curl both state there are no known real-world attacks as of the fix release.
The impact
- Money
- No financial losses or fines have been reported. However, under GDPR, a serious breach could result in fines up to €20 million or 4% of annual turnover if exploited and not addressed.
- Reputation
- A widely used tool like curl facing a High-severity flaw could affect trust, especially if not patched quickly. The project responded promptly.
- Customers
- Users of curl or software that uses libcurl should update to 8.23.0 or disable HTTP/2 support to avoid risk. There is no evidence of real-world exploitation.
Why it matters
curl is used by millions of people and many applications. A bug that lets a server run code on your machine is serious, even if it is hard to exploit. Keeping curl up to date is important for both individuals and organisations.
How does it work?
The flaw is a use-after-free bug. During an HTTP/2 upload, a hostile server can manipulate the connection so curl reuses memory that has already been freed. If the attacker knows the client's exact system details, they can overwrite a function pointer and potentially execute code. In most cases, this will cause a crash rather than successful exploitation.
Key points
- curl patched a serious HTTP/2 upload flaw in version 8.23.0.
- The bug could let a malicious server crash or, in rare cases, run code on the client.
- No attacks using this flaw have been reported in the wild.
- Update curl or libcurl to 8.23.0 or disable HTTP/2 support if you cannot update.
- The exploit is complex and unlikely to succeed in most real-world cases.
Sources
The Hacker News
Reference




