Executive brief
curl is a widely used tool and library for transferring data over various network protocols. A security flaw in its HTTP/3 implementation could allow an attacker to intercept sensitive information, such as login credentials or private data, by impersonating a legitimate server. This occurs because the software may prematurely send data to a malicious server before verifying its security certificate during a resumed connection.
Technical details
A vulnerability exists in libcurl's HTTP/3 implementation (specifically the ngtcp2 + nghttp3 backend) related to TLS 1.3 early data (0-RTT). When a client resumes a cached SSL session with early data enabled (CURLSSLOPT_EARLYDATA), libcurl may transmit the request payload on a new connection before completing the certificate verification process. If an attacker performs a machine-in-the-middle attack or replaces the legitimate server with an impostor lacking a valid certificate, sensitive request bytes could be leaked to the unauthorized actor. The issue is fixed in version 8.21.0 by ensuring certificate validation occurs before early data transmission.
Affected products
- curl curl 8.11.0 to 8.20.0
Timeline
- 2026-05-19: disclosed: Reported to the curl project via HackerOne.
- 2026-06-24: patched: Fixed in curl version 8.21.0.
- 2026-06-24: advisory: Project curl security advisory published.
- 2026-07-03: other: CVE record published in NVD.