public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/curl] f43: Resolves: CVE-2026-8286 - wrong STARTTLS connection reuse
@ 2026-08-27 15:01 Jan Macku
  0 siblings, 0 replies; only message in thread
From: Jan Macku @ 2026-08-27 15:01 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/curl
Branch : f43
Commit : 37709a14017334f6b56c0c6b367a6496cb23f945
Author : Jan Macku <jamacku@redhat.com>
Date   : 2026-08-26T16:05:57+02:00
Stats  : +71/-0 in 2 file(s)
URL    : https://src.fedoraproject.org/rpms/curl/c/37709a14017334f6b56c0c6b367a6496cb23f945?branch=f43

Log:
Resolves: CVE-2026-8286 - wrong STARTTLS connection reuse

---
diff --git a/0014-curl-8.15.0-CVE-2026-8286.patch b/0014-curl-8.15.0-CVE-2026-8286.patch
new file mode 100644
index 0000000..ad0910c
--- /dev/null
+++ b/0014-curl-8.15.0-CVE-2026-8286.patch
@@ -0,0 +1,67 @@
+From f44eeb28658b43d61eb81dfaef47eba70770283e Mon Sep 17 00:00:00 2001
+From: Stefan Eissing <stefan@eissing.org>
+Date: Thu, 7 May 2026 10:30:07 +0200
+Subject: [PATCH] url: fix connection reuse for starttls protocols
+
+When a connection is tested for reuse in a transfer that *may* upgrade
+to TLS (commonly via STARTTLS), the SSL configuration must match the
+existing connection.
+
+Reported-by: Andrew Nesbit
+Closes #21522
+
+(cherry picked from commit a86efdd7ca5433de9231e650f18247de8319ad16)
+---
+ lib/url.c | 15 ++++++++++++---
+ 1 file changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/lib/url.c b/lib/url.c
+index fd3bb575c7..b04ed7e10c 100644
+--- a/lib/url.c
++++ b/lib/url.c
+@@ -803,7 +803,11 @@ struct url_conn_match {
+   BIT(want_proxy_ntlm_http);
+   BIT(want_nego_http);
+   BIT(want_proxy_nego_http);
+-
++  BIT(may_tls); /* May upgrade clear-text connection to TLS, can only reuse
++                 * connections that have matching TLS configuration.
++                 * Always TRUE if `require_tls` is TRUE. */
++  BIT(require_tls); /* Requires TLS use from a clear-text start, can only
++                 * reuse connections that have TLS. */
+   BIT(wait_pipe);
+   BIT(force_reuse);
+   BIT(seen_pending_conn);
+@@ -954,6 +958,9 @@ static bool url_match_ssl_use(struct connectdata *conn,
+     if(get_protocol_family(conn->handler) != m->needle->handler->protocol)
+       return FALSE;
+   }
++  else if(m->require_tls)
++    /* a clear-text STARTTLS protocol with required TLS */
++    return FALSE;
+   return TRUE;
+ }
+ 
+@@ -1144,8 +1151,8 @@ static bool url_match_destination(struct connectdata *conn,
+ static bool url_match_ssl_config(struct connectdata *conn,
+                                  struct url_conn_match *m)
+ {
+-  /* If talking TLS, conn needs to use the same SSL options. */
+-  if((m->needle->handler->flags & PROTOPT_SSL) &&
++  /* If talking/upgrading to TLS, conn needs to use the same SSL options. */
++  if(((m->needle->handler->flags & PROTOPT_SSL) || m->may_tls) &&
+      !Curl_ssl_conn_config_match(m->data, conn, FALSE)) {
+     DEBUGF(infof(m->data,
+                  "Connection #%" FMT_OFF_T
+@@ -1416,6 +1423,8 @@ ConnectionExists(struct Curl_easy *data,
+     (needle->handler->protocol & PROTO_FAMILY_HTTP);
+ #endif
+ #endif
++  match.require_tls = data->set.use_ssl >= CURLUSESSL_CONTROL;
++  match.may_tls = data->set.use_ssl > CURLUSESSL_NONE;
+ 
+   /* Find a connection in the pool that matches what "data + needle"
+    * requires. If a suitable candidate is found, it is attached to "data". */
+-- 
+2.55.0
+

diff --git a/curl.spec b/curl.spec
index 725f60c..f74c427 100644
--- a/curl.spec
+++ b/curl.spec
@@ -55,6 +55,9 @@ Patch012: 0012-curl-8.15.0-CVE-2026-8924.patch
 # fix proto-default skips SSH verification (CVE-2026-12064)
 Patch013: 0013-curl-8.15.0-CVE-2026-12064.patch
 
+# fix wrong STARTTLS connection reuse (CVE-2026-8286)
+Patch014: 0014-curl-8.15.0-CVE-2026-8286.patch
+
 # patch making libcurl multilib ready
 Patch101: 0101-curl-7.32.0-multilib.patch
 
@@ -456,6 +459,7 @@ rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/wcurl.1*
 %changelog
 * Wed Aug 26 2026 Jan Macku <jamacku@redhat.com> - 8.15.0-9
 - fix proto-default skips SSH verification (CVE-2026-12064)
+- fix wrong STARTTLS connection reuse (CVE-2026-8286)
 
 * Mon Aug 03 2026 Jan Macku <jamacku@redhat.com> - 8.15.0-8
 - fix cross-proxy Digest auth state leak (CVE-2026-7168)

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-08-27 15:01 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-27 15:01 [rpms/curl] f43: Resolves: CVE-2026-8286 - wrong STARTTLS connection reuse Jan Macku

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox