CVE-2025-40090

ksmbd: fix recursive locking in RPC handle list access

MEDIUM
5.5
CVSS Score
Published: October 30, 2025 at 09:47 AM UTC
Updated: October 19, 2026 at 09:10 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.3%

Description

In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix recursive locking in RPC handle list access Since commit 305853cce3794 ("ksmbd: Fix race condition in RPC handle list access"), ksmbd_session_rpc_method() attempts to lock sess->rpc_lock. This causes hung connections / tasks when a client attempts to open a named pipe. Using Samba's rpcclient tool: $ rpcclient //192.168.1.254 -U user%password $ rpcclient $> srvinfo <connection hung here> Kernel side: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. task:kworker/0:0 state:D stack:0 pid:5021 tgid:5021 ppid:2 flags:0x00200000 Workqueue: ksmbd-io handle_ksmbd_work Call trace: __schedule from schedule+0x3c/0x58 schedule from schedule_preempt_disabled+0xc/0x10 schedule_preempt_disabled from rwsem_down_read_slowpath+0x1b0/0x1d8 rwsem_down_read_slowpath from down_read+0x28/0x30 down_read from ksmbd_session_rpc_method+0x18/0x3c ksmbd_session_rpc_method from ksmbd_rpc_open+0x34/0x68 ksmbd_rpc_open from ksmbd_session_rpc_open+0x194/0x228 ksmbd_session_rpc_open from create_smb2_pipe+0x8c/0x2c8 create_smb2_pipe from smb2_open+0x10c/0x27ac smb2_open from handle_ksmbd_work+0x238/0x3dc handle_ksmbd_work from process_scheduled_works+0x160/0x25c process_scheduled_works from worker_thread+0x16c/0x1e8 worker_thread from kthread+0xa8/0xb8 kthread from ret_from_fork+0x14/0x38 Exception stack(0x8529ffb0 to 0x8529fff8) The task deadlocks because the lock is already held: ksmbd_session_rpc_open down_write(&sess->rpc_lock) ksmbd_rpc_open ksmbd_session_rpc_method down_read(&sess->rpc_lock) <-- deadlock Adjust ksmbd_session_rpc_method() callers to take the lock when necessary.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

6.12.53 ≤ v < 6.12.556.17.3 ≤ v < 6.17.5305853cce379407090a73b38c5de5ba748893aee5cc679ba0f4505936124cd4179ba66bb0a4bd9f36.12.536.17.36.186.18 rc169674b029002b1d90b655f014bdf64f404efa54d6b615a8fb3af0baf8126cde3d4fee97d57222ffc6bd7e0e55dcea2cf0d391bbc21c2eb069b4be3e1
Vendor states this is fixed in 1891abe832cbf5a11039e088766131d0f1642d02 (fixed)
Vendor states this is fixed in 3412fbd81b46b9cfae013817b61d4bbd27e09e36 (fixed)
Vendor states this is fixed in 4602b8cee1481dbb896182e5cb1e8cf12910e9e7 (fixed)
Vendor states this is fixed in 5493571f4351f74e11db9943e98a07c56467cf7e (fixed)
Vendor states this is fixed in 88f170814fea74911ceab798a43cbd7c5599bed4 (fixed)
Affected range stops below 6.12.55, so it looks safe — our inference, not a vendor statement
Affected range stops below 6.17.5, so it looks safe — our inference, not a vendor statement

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-674

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card