Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessApp enables auto client-cert selection
-
Exploitcurl pools a cert-bound TLS connection
-
ExecutionReuses it for a mismatched transfer
-
ImpactWrong client identity applied to origin
Vulnerability Assessment
| Exploitation Conditions | Requires an application built on libcurl that uses automatic client-certificate selection on a TLS backend supporting it, AND connection reuse/pooling active across transfers whose client-certificate requirements differ. Limiting factors that reduce real-world risk: this is not remote unauthenticated exploitation of a default config - it depends on the host application's specific client-certificate and reuse configuration, is not triggerable by an arbitrary external attacker sending a single request, and only manifests when multiple transfers with differing certificate expectations share a connection; versions after 8.22.0 (i.e. 8.23.0+) are fixed. |
| Impact | This is genuinely a LOW-severity issue, not a high-CVSS-but-low-risk inflation case - the severity rating of LOW is assigned directly by the curl project (the authoritative vendor) in its official 8.23.0 advisory. No CVSS vector, CWE, EPSS probability, KEV listing, SSVC decision, or public PoC was provided in the input, so there is no signal of active or likely exploitation; the only strong signal present is the vendor's own LOW classification. The flaw is a connection-reuse logic error (a pooled TLS connection established with automatic client-certificate selection being reused for a transfer with mismatched client-cert expectations), which is a correctness/confidentiality concern affecting applications that use libcurl in a specific way rather than a directly attacker-driven remote compromise. Because CVSS/EPSS/KEV/PoC data are all absent, authentication and exploitability cannot be independently confirmed from the input - the assessment below is inferred from the vulnerability title and curl's known connection-reuse behavior and should be verified against the per-CVE page at curl.se/docs/security.html. Net: low operational priority, patch in normal maintenance cycle. |
| Exploit ScenarioDerived | An application using libcurl with automatic client-certificate selection performs multiple transfers over a shared connection pool; curl reuses a connection originally negotiated with a client certificate for a subsequent request that should have used a different certificate or none, causing the wrong client identity to be presented to (or confused across) origins. No public exploit code was identified in the provided data, and exploitation depends on the host application's reuse pattern and TLS backend rather than a single crafted network message. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
Credential mixup during TLS connection reuse in curl/libcurl up to and including 8.22.0 can cause an application relying on automatic client-certificate selection to present the wrong client certificate on a pooled connection, exposing a transfer's identity context to the wrong destination or policy. Exploitation is not reachable by an arbitrary external attacker with a single request: it requires a libcurl-based host application that enables automatic client-certificate selection on a TLS backend that supports it and also reuses connections across transfers with differing certificate expectations, which is why the curl project rates it LOW (assessed CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N, base 3.7, confidentiality-only impact). The issue is one of twenty-four advisories published with curl 8.23.0; no public exploit code has been identified and the flaw is not confirmed actively exploited (not in CISA KEV) at time of analysis.
RemediationAI
Vendor-released patch: upgrade to curl/libcurl 8.23.0, which contains the fix and the fixes for the other twenty-three advisories in the same release; rebuild and redeploy any application statically linking libcurl, and for dynamically linked systems confirm the runtime library, not just the development headers, resolves to 8.23.0 or later. Advisory URLs for verification: https://curl.se/docs/security.html and the release announcement https://seclists.org/oss-sec/2026/q4/154. If upgrading immediately is not possible, the most direct compensating control is to stop relying on automatic client-certificate selection and instead bind an explicit certificate per transfer via CURLOPT_SSLCERT/CURLOPT_SSLKEY, which removes the ambiguity the reuse path depends on - the trade-off is added per-handle configuration and, for dynamically chosen certificates, application-level logic that must match the certificate to the destination. A second option is to prevent cross-transfer connection reuse between differing certificate contexts by forcing fresh or non-reused connections with CURLOPT_FRESH_CONNECT or CURLOPT_FORBID_REUSE for any transfer with a distinct client-certificate requirement, or by keeping separate easy/multi handles and separate connection pools per credential context; both increase TLS handshake volume and latency and can noticeably reduce throughput on high-connection-count clients. Because the prerequisite is a host-application configuration rather than a default setting, inventory applications that use platform certificate stores or automatic certificate callbacks and prioritize those for the 8.23.0 rebuild. Organizations that cannot move off older branches may find vendor-maintained backports relevant: the project's commercial Long Term Support offering (Rock-solid curl, https://rock-solid.curl.dev) applies security patches to selected release branches under support contract, but this is a paid program and should not be assumed to cover every branch by default.
Affected ProductsAI
curl and libcurl are affected up to and including version 8.22.0, with the fix shipped in curl 8.23.0; the issue only manifests in host applications built on libcurl that use automatic client-certificate selection with a TLS backend supporting it and that allow connection reuse across transfers with differing client-certificate requirements, while the curl command-line tool is primarily relevant only where it is driven by such automation. No CPE strings were provided in the supplied intelligence, so product identification must be based on the curl/libcurl version. The authoritative affected-version table, per-CVE fix commits, and severity ratings for this CVE and the twenty-three other flaws released together are maintained on the curl security page at https://curl.se/docs/security.html, and the release announcement with the full advisory list is at https://seclists.org/oss-sec/2026/q4/154. Version-range data in that table for adjacent CVEs in the same batch (for example CVE-2026-86411 affecting 7.x through 8.22.0 and CVE-2026-107929 affecting 8.9.0 through 8.22.0) illustrates that any 8.x consumer should treat 8.22.0 and earlier as in scope and upgrade rather than attempting to reason per-CVE about minor version boundaries.
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
libcurl maintains a connection pool and reuses established TLS connections for subsequent transfers when its reuse key matches (scheme, host, port, proxy, and related attributes). Automatic client-certificate selection lets a TLS backend choose a client certificate from the platform or application certificate store on behalf of the caller rather than having the application pin one explicitly per handle. The reuse key does not adequately capture the client-certificate configuration of the transfer, so when two transfers with different certificate expectations are multiplexed onto the same pooled connection, the certificate negotiated for the earlier transfer can be silently reused for the later one. The root cause is therefore an incomplete connection-pool identity/credential binding - an exposure-of-resource-to-wrong-session style mixup - not a memory-safety defect; the only assessed impact is low confidentiality loss, with no integrity or availability effect. This CVE belongs to a cluster of connection-reuse and cross-origin credential bugs in the same 8.23.0 release, including CVE-2026-86411 (FTP connection reuse inherits client certificate), CVE-2026-107929 (local interface connection reuse mixup), CVE-2026-87861 (cross-origin reuse of a Negotiate connection), CVE-2026-86413 and CVE-2026-94265 (Negotiate credentials sent to a redirected or foreign origin), and CVE-2026-86414 (credentials leaked to an HTTP proxy), which share the common theme of the connection pool failing to isolate per-credential state. Note that no CWE identifier, CVSS vector, or CPE string was supplied in the source advisory data; the assessed vector above comes from independent analysis, and the sibling disclosures in the same release span affected ranges back to libcurl 7.15.0, so the first vulnerable version for this specific issue is not confirmed from the available data.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AC:H because exploitation needs a specific auto-client-cert plus connection-reuse condition; PR:N as no attacker privileges are needed; only limited confidentiality/identity exposure, so C:L and I:A:N.
Description PRE-NVD
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
CVE.org
GitHub PoC
Exploit-DB