CVE-2025-40039
kernel: ksmbd: Fix race condition in RPC handle list access
Severity
UnknownRed Hat Product Security
CVSS
Review impact separately from score.
Published · October 28, 2025
Updated · October 30, 2026
Description
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: Fix race condition in RPC handle list access
The 'sess->rpc_handle_list' XArray manages RPC handles within a ksmbd session. Access to this list is intended to be protected by 'sess->rpc_lock' (an rw_semaphore). However, the locking implementation was flawed, leading to potential race conditions.
In ksmbd_session_rpc_open(), the code incorrectly acquired only a read lock before calling xa_store() and xa_erase(). Since these operations modify the XArray structure, a write lock is required to ensure exclusive access and prevent data corruption from concurrent modifications.
Furthermore, ksmbd_session_rpc_method() accessed the list using xa_load() without holding any lock at all. This could lead to reading inconsistent data or a potential use-after-free if an entry is concurrently removed and the pointer is dereferenced.
Fix these issues by:
- Using down_write() and up_write() in ksmbd_session_rpc_open() to ensure exclusive access during XArray modification, and ensuring the lock is correctly released on error paths.
- Adding down_read() and up_read() in ksmbd_session_rpc_method() to safely protect the lookup.
Statement
Red Hat Enterprise Linux kernels do not enable or ship the in-kernel SMB server (ksmbd), preventing exposure to this flaw on supported systems. In upstream environments, improper locking mechanisms during RPC handle operations allow concurrent access that can trigger race conditions, leading to data corruption or potential use-after-free states. Because the ksmbd subsystem is absent from Red Hat product kernels, this vulnerability does not impact Red Hat Enterprise Linux.
Mitigation
No mitigation is specified in collected source.
CVSS / CWE
CWE not specified