Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix NULL-deref of opinfo->conn in oplock/lease break notifiers smb2_oplock_break_noti() and smb2_lease_break_noti() read opinfo->conn into a local with neither READ_ONCE() nor a NULL check. Both run from oplock_break() after opinfo_get_list() has dropped ci->m_lock, so a concurrent SMB2 LOGOFF (session_fd_check()) can set op->conn = NULL under ci->m_lock within that window. ksmbd_conn_r_count_inc(conn) then writes through NULL at offset 0xc4 -- a remotely triggerable oops. Guard both reads the way compare_guid_key() already does: read opinfo->conn with READ_ONCE() and return early if it is NULL, before allocating the work struct so nothing leaks. A NULL conn means the client is gone and the break is moot, so return 0; oplock_break() treats that as success and runs the normal teardown.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected 8df4bcdb0a4232192b2445256c39b787d58ef14d before 945a86b21b40fb17183f5b27461baa6f03e2467f; affected c8efcc786146a951091588e5fa7e3c754850cb3c before 1ff58dcfcab434ebb51649da33774fbb8e1f7b67; affected c8efcc786146a951091588e5fa7e3c754850cb3c before e735dbd489e3ea02be78dba991056fe1138be51e; affected c8efcc786146a951091588e5fa7e3c754850cb3c before 75e33deda658c1ab3a9336cbdb1436536f9b3660; affected c8efcc786146a951091588e5fa7e3c754850cb3c before b003086d76968298f22e7cf62239833b5a3a06b1; affected 6.6.32 before 6.6.143 |
| Linux / Linux | affected 6.9; unaffected 0 before 6.9; unaffected 6.6.143 through 6.6.*; unaffected 6.12.94 through 6.12.*; unaffected 6.18.36 through 6.18.*; unaffected 7.0.13 through 7.0.*; unaffected 7.1 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/945a86b21b40fb17183f5b27461baa6f03e2467f
- https://git.kernel.org/stable/c/1ff58dcfcab434ebb51649da33774fbb8e1f7b67
- https://git.kernel.org/stable/c/e735dbd489e3ea02be78dba991056fe1138be51e
- https://git.kernel.org/stable/c/75e33deda658c1ab3a9336cbdb1436536f9b3660
- https://git.kernel.org/stable/c/b003086d76968298f22e7cf62239833b5a3a06b1