CVE-2026-97556: smb: client: avoid leaking refcount when cifs_sb_tlink() fails
In the Linux kernel, the following vulnerability has been resolved:
smb: client: avoid leaking refcount when cifssbtlink() fails
cifsoplockbreak() takes over the reference that cifsqueueoplockbreak() acquired when it queued the work, and drops it with cifsFileInfoput() once the break has been processed.
Only in setups with "-o multiuser", cifssbtlink() may fail, at which point cifsoplockbreak() returns without putting the file reference, mirroring the reference leak we already fixed in the companion patch to cifsqueueoplockbreak().
This would trigger a crash due to busy inodes on the next unmount:
BUG: Dentry ... still in use (1) [unmount of cifs cifs] VFS: Busy inodes after unmount of cifs (cifs)
Drop the reference on that path as well. Doing so before the out label mirrors the normal path, which also puts the reference before cifsdoneoplockbreak().
Found by Sashiko code review. The failure path was not exercised at runtime.
Affected Software
Event History
Frequently Asked Questions
Which systems are exposed to this issue?
The issue is limited to Linux kernel CIFS/SMB client mounts configured with the -o multiuser mount option. The affected failure path is not applicable to CIFS mounts that do not use multiuser.
What conditions are needed to trigger the problem?
An oplock-break work item must be processed and cifs_sb_tlink() must fail in the multiuser setup. That failure causes a file-reference leak, which can lead to busy inodes and a crash on a subsequent CIFS unmount.
How can administrators identify a likely impact?
A likely symptom is an unmount failure or crash reporting busy CIFS inodes, including messages such as "VFS: Busy inodes after unmount of cifs (cifs)." The problematic failure path was identified by code review and was not exercised at runtime.