CVE-2026-90162

ksmbd: defer publishing granted locks to prevent UAF/double-free race

State
Published
Severity
8.8 High
Published
Sep 17, 2026
Updated
Oct 30, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

In the Linux kernel, the following vulnerability has been resolved:

ksmbd: defer publishing granted locks to prevent UAF/double-free race

In smb2_lock(), mid-batch granted locks are published to connection-wide (conn->lock_list) and file-wide (fp->lock_list) lists immediately upon vfs_lock_file() success, while also remaining tracked on the stack-local rollback_list.

If a subsequent element in the same SMB2_LOCK request array fails validation or execution, the thread jumps to out: and walks rollback_list to undo previously granted locks. However, because the granted lock was already published to conn->lock_list, a concurrent UNLOCK request on the same connection can find the lock object and kfree() it before the rollback loop executes.

When the granting thread subsequently walks rollback_list, it dereferences and frees the already-freed ksmbd_lock structure, resulting in a Use-After-Free and Double-Free (on both ksmbd_lock and struct file_lock).

Fix this by deferring the publication of granted locks to conn->lock_list and fp->lock_list until after the entire array of lock elements has been processed without error. Mid-batch grants remain tracked exclusively on the request-local rollback_list until the whole batch succeeds, eliminating the race window.

Scores

CVSSScoreVectorSource
3.18.8 HighCVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9 to before f1371a140722c1d6868f9acf69d601de7d4142bfAffected
  • e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9 to before b68d4bb6b03a667c305626bd2c242fd162bac17eAffected
  • e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9 to before 65f54ed0289e9a57e6c60b14347ccea4c318f1fcAffected
  • e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9 to before ff6870cf3b7eccc69d03cbb6f23e3995d96e9a8dAffected
  • e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9 to before a1d26dfb32919088e3638dca01068df3c4507433Affected
  • e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9 to before 29f74f0f2e6df3b393b7b66e810136d0c64e3c59Affected
LinuxLinux
  • 5.15Affected
  • before 5.15Not affected
  • 6.1.191 through 6.1.*Not affected
  • 6.6.160 through 6.6.*Not affected
  • 6.12.114 through 6.12.*Not affected
  • 6.18.57 through 6.18.*Not affected
  • 7.2.6 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.