CVE-2026-97557: smb: client: avoid leaking refcount in cifs_queue_oplock_break()

Published Sep 25, 2026
·
Updated

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

smb: client: avoid leaking refcount in cifsqueueoplockbreak()

cifsqueueoplockbreak() unconditionally takes a reference on the target file before queueing cifsoplockbreak(). Only that work item decreases the reference counter again.

If another oplock break arrives while that work is still queued, queuework() will return false and not queue this second work item. As a result, we will never reach the point to drop the file reference again and are leaking this reference. This can be triggered when interacting with a slow-responding server.

As a result, later unmount operations for this file system will fail with

BUG: Dentry ... still in use (1) [unmount of cifs cifs] VFS: Busy inodes after unmount of cifs (cifs) kernel BUG at fs/super.c:777!

Fix this by only incrementing the reference count if the work has been queued successfully. Taking it after queuework() is safe because all three callers hold tcon->openfilelock across the call and cifsFileInfoput() decrements under that same lock, so a worker that starts the handler in the window cannot drop the reference before it has been taken.

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 25, 2026
CVE Published
via MITRE·10:21 AM
Data Sourced
via MITRE·10:21 AM
DescriptionSeverity
Data Sourced
via NVD·11:17 AM
DescriptionSeverity

Frequently Asked Questions

1

What conditions are needed to trigger the reference leak?

The affected client must receive another oplock break for a target file while an earlier cifs_oplock_break work item is still queued. The issue can be triggered when the CIFS client interacts with a slow-responding server.

2

What is the operational impact if the leak occurs?

The leaked file reference can prevent later unmount operations for the CIFS file system. The kernel may report a dentry still in use and busy inodes after unmount, followed by a kernel BUG.

3

How can I identify that a system has likely been affected?

Check kernel logs around CIFS unmount failures for messages such as "Dentry ... still in use (1)", "VFS: Busy inodes after unmount of cifs (cifs)", and a kernel BUG at fs/super.c:777.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203