CyberRota Analysis
AI-GeneratedThe vulnerability affects the Linux kernel's handling of splice entries in the SMC (Socket Memory Copy) implementation, where improper reference counting can lead to a use-after-free condition. This flaw may allow an attacker to exploit memory management issues, potentially leading to system instability or arbitrary code execution. Linux system administrators and developers working with network applications should prioritize this fix to mitigate risks associated with memory corruption vulnerabilities.
Original NVD 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.