* CVE-2026-74631: net: smc: fix splice entry lifetime imbalance in smc_rx_splice
@ 2026-08-22 15:31 Greg Kroah-Hartman
0 siblings, 0 replies; only message in thread
From: Greg Kroah-Hartman @ 2026-08-22 15:31 UTC (permalink / raw)
To: linux-cve-announce; +Cc: Greg Kroah-Hartman
From: Greg Kroah-Hartman <gregkh@kernel.org>
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
net: smc: fix splice entry lifetime imbalance in smc_rx_splice
smc_rx_splice() passes pages to splice_to_pipe() before taking the
references that cover the lifetime of each splice entry. In the
VM-backed RMB path, splice_to_pipe() may drop unqueued entries through
smc_rx_spd_release(), while queued entries are released later via the
pipe buffer callback.
The old post-splice accounting also derives the number of queued VM pages
from an offset mutated while building the descriptor, and a multi-page
splice pairs one sock_hold() with multiple sock_put() calls.
Take the page and socket references for every candidate entry before
splice_to_pipe(), and drop the matching private state, page reference,
and socket reference from smc_rx_spd_release() for entries that never
get queued. This fixes a refcount imbalance that can underflow page
refcounts and trigger a use-after-free.
The Linux kernel CVE team has assigned CVE-2026-74631 to this issue.
Affected and fixed versions
===========================
Issue introduced in 4.18 with commit 9014db202cb764b8e14c53e7bacc81f9a1a2ba7f and fixed in 6.1.183 with commit c841789e456ec6751342fa800639ce8e82ff0e6b
Issue introduced in 4.18 with commit 9014db202cb764b8e14c53e7bacc81f9a1a2ba7f and fixed in 6.6.152 with commit af02c67ce654356c58db20a0bb2db33ace3b07a8
Issue introduced in 4.18 with commit 9014db202cb764b8e14c53e7bacc81f9a1a2ba7f and fixed in 6.12.104 with commit ca8342b5fc24c249fdb998468f6a168b457c67e5
Issue introduced in 4.18 with commit 9014db202cb764b8e14c53e7bacc81f9a1a2ba7f and fixed in 6.18.45 with commit 0b7d54cedea5cb158e21925ae0c6c2f5c87ed2a0
Issue introduced in 4.18 with commit 9014db202cb764b8e14c53e7bacc81f9a1a2ba7f and fixed in 7.1.9 with commit 4515c78f4d9fd577270f012efeb062ea58b3682d
Issue introduced in 4.18 with commit 9014db202cb764b8e14c53e7bacc81f9a1a2ba7f and fixed in 7.2 with commit 5d9686af2976741bbd79b150d1c9e60b81e7f12e
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-74631
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_rx.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/c841789e456ec6751342fa800639ce8e82ff0e6b
https://git.kernel.org/stable/c/af02c67ce654356c58db20a0bb2db33ace3b07a8
https://git.kernel.org/stable/c/ca8342b5fc24c249fdb998468f6a168b457c67e5
https://git.kernel.org/stable/c/0b7d54cedea5cb158e21925ae0c6c2f5c87ed2a0
https://git.kernel.org/stable/c/4515c78f4d9fd577270f012efeb062ea58b3682d
https://git.kernel.org/stable/c/5d9686af2976741bbd79b150d1c9e60b81e7f12e
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-08-22 15:35 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-22 15:31 CVE-2026-74631: net: smc: fix splice entry lifetime imbalance in smc_rx_splice Greg Kroah-Hartman
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.