CVE-2026-74493: net/smc: fix socket use-after-free during link group termination

Greg Kroah-Hartman <[email protected]>
Newsgroups org.kernel.vger.linux-cve-announce
Message-ID <2026081539-CVE-2026-74493-cf51@gregkh>
From: Greg Kroah-Hartman <[email protected]>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

net/smc: fix socket use-after-free during link group termination

__smc_lgr_terminate() drops conns_lock after finding a connection in
lgr->conns_all, but before taking a reference on its socket. The connection
is embedded in the socket, and its registration reference protects it only
while the connection remains in the tree.

A concurrent close can unregister the connection and drop that reference,
freeing the socket before the termination worker reaches sock_hold().

The race is reachable when close overlaps link group termination.
Local stress testing reproduced the use-after-free and KASAN reported:

  BUG: KASAN: slab-use-after-free in __smc_lgr_terminate.part.0 [smc]
  Write of size 4 by task kworker/3:3
  Workqueue: events smc_lgr_terminate_work [smc]
  __smc_lgr_terminate.part.0 [smc]

The socket was allocated by smc_create(), freed through
slab_free_after_rcu_debug(), and was followed by:

  refcount_t: addition on 0; use-after-free.
  __smc_lgr_terminate.part.0 [smc]

Take the socket reference while conns_lock still protects the tree entry.
The unregister path then cannot drop the last reference until termination
has finished using the socket.

The Linux kernel CVE team has assigned CVE-2026-74493 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 5.5 with commit 69318b5215f2dc32c345a3d65b98b4b1bf29c007 and fixed in 6.6.151 with commit 5a42f162b857019a4c10ff687dc3bcdf51831865
	Issue introduced in 5.5 with commit 69318b5215f2dc32c345a3d65b98b4b1bf29c007 and fixed in 6.12.103 with commit 281c103a8eaed59001ce952f231df1b07674215a
	Issue introduced in 5.5 with commit 69318b5215f2dc32c345a3d65b98b4b1bf29c007 and fixed in 6.18.44 with commit f807a63d0d95680c34f677700da9148a07d7c78f
	Issue introduced in 5.5 with commit 69318b5215f2dc32c345a3d65b98b4b1bf29c007 and fixed in 7.1.8 with commit f0541a775d04c88e90ba448e35ce0d743512822a
	Issue introduced in 5.5 with commit 69318b5215f2dc32c345a3d65b98b4b1bf29c007 and fixed in 7.2-rc6 with commit f621d6ebeebb6374342571e4ddf45fdbc420f6cd

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2026-74493
will be updated if fixes are backported, please check that for the most
up to date information about this issue.


Affected files
==============

The file(s) affected by this issue are:
	net/smc/smc_core.c


Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/5a42f162b857019a4c10ff687dc3bcdf51831865
	https://git.kernel.org/stable/c/281c103a8eaed59001ce952f231df1b07674215a
	https://git.kernel.org/stable/c/f807a63d0d95680c34f677700da9148a07d7c78f
	https://git.kernel.org/stable/c/f0541a775d04c88e90ba448e35ce0d743512822a
	https://git.kernel.org/stable/c/f621d6ebeebb6374342571e4ddf45fdbc420f6cd
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.