In the Linux kernel, the following vulnerability has been resolved:
net: smc: fix splice entry lifetime imbalance in smcrxsplice
smcrxsplice() passes pages to splicetopipe() before taking the references that cover the lifetime of each splice entry. In the VM-backed RMB path, splicetopipe() may drop unqueued entries through smcrxspd_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 sockhold() with multiple sockput() calls.
Take the page and socket references for every candidate entry before splicetopipe(), and drop the matching private state, page reference, and socket reference from smcrxspd_release() for entries that never get queued. This fixes a refcount imbalance that can underflow page refcounts and trigger a use-after-free.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/74xxx/CVE-2026-74631.json",
"cna_assigner": "Linux"
}