Executive brief
libcurl, a widely used library for transferring data over various protocols, contains a flaw in how it manages secure connections. When an application attempts to establish a new secure connection using different client certificate settings (mTLS), libcurl may incorrectly reuse an existing connection that was established with different credentials. This could lead to an authentication bypass where a request is sent using the wrong identity, potentially exposing sensitive data or performing unauthorized actions.
Technical details
A vulnerability exists in libcurl's connection reuse logic (CWE-305). libcurl maintains a pool of previously used connections to optimize performance; however, the logic responsible for matching a new request to an existing connection failed to account for certain TLS settings related to client certificates and private keys. Consequently, libcurl may reuse a connection for a transfer that should have required different mTLS credentials. This issue affects libcurl but not the curl command-line tool. The vulnerability is resolved in version 8.21.0 by ensuring all relevant mTLS configuration options are included in the connection matching checks.
Affected products
- curl libcurl 7.7 to 8.20.0
Timeline
- 2026-05-13: 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.