Commit 3bdb78f
committed
cifs: fix potential oops in cifs_oplock_break
jira VULN-131073
cve-pre CVE-2025-38527
commit-author Steve French <stfrench@microsoft.com>
commit e8f5f84
With deferred close we can have closes that race with lease breaks,
and so with the current checks for whether to send the lease response,
oplock_response(), this can mean that an unmount (kill_sb) can occur
just before we were checking if the tcon->ses is valid. See below:
[Fri Aug 4 04:12:50 2023] RIP: 0010:cifs_oplock_break+0x1f7/0x5b0 [cifs]
[Fri Aug 4 04:12:50 2023] Code: 7d a8 48 8b 7d c0 c0 e9 02 48 89 45 b8 41 89 cf e8 3e f5 ff ff 4c 89 f7 41 83 e7 01 e8 82 b3 03 f2 49 8b 45 50 48 85 c0 74 5e <48> 83 78 60 00 74 57 45 84 ff 75 52 48 8b 43 98 48 83 eb 68 48 39
[Fri Aug 4 04:12:50 2023] RSP: 0018:ffffb30607ddbdf8 EFLAGS: 00010206
[Fri Aug 4 04:12:50 2023] RAX: 632d223d32612022 RBX: ffff97136944b1e0 RCX: 0000000080100009
[Fri Aug 4 04:12:50 2023] RDX: 0000000000000001 RSI: 0000000080100009 RDI: ffff97136944b188
[Fri Aug 4 04:12:50 2023] RBP: ffffb30607ddbe58 R08: 0000000000000001 R09: ffffffffc08e0900
[Fri Aug 4 04:12:50 2023] R10: 0000000000000001 R11: 000000000000000f R12: ffff97136944b138
[Fri Aug 4 04:12:50 2023] R13: ffff97149147c000 R14: ffff97136944b188 R15: 0000000000000000
[Fri Aug 4 04:12:50 2023] FS: 0000000000000000(0000) GS:ffff9714f7c00000(0000) knlGS:0000000000000000
[Fri Aug 4 04:12:50 2023] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[Fri Aug 4 04:12:50 2023] CR2: 00007fd8de9c7590 CR3: 000000011228e000 CR4: 0000000000350ef0
[Fri Aug 4 04:12:50 2023] Call Trace:
[Fri Aug 4 04:12:50 2023] <TASK>
[Fri Aug 4 04:12:50 2023] process_one_work+0x225/0x3d0
[Fri Aug 4 04:12:50 2023] worker_thread+0x4d/0x3e0
[Fri Aug 4 04:12:50 2023] ? process_one_work+0x3d0/0x3d0
[Fri Aug 4 04:12:50 2023] kthread+0x12a/0x150
[Fri Aug 4 04:12:50 2023] ? set_kthread_struct+0x50/0x50
[Fri Aug 4 04:12:50 2023] ret_from_fork+0x22/0x30
[Fri Aug 4 04:12:50 2023] </TASK>
To fix this change the ordering of the checks before sending the oplock_response
to first check if the openFileList is empty.
Fixes: da787d5 ("SMB3: Do not send lease break acknowledgment if all file handles have been closed")
Suggested-by: Bharath SM <bharathsm@microsoft.com>
Reviewed-by: Bharath SM <bharathsm@microsoft.com>
Reviewed-by: Shyam Prasad N <sprasad@microsoft.com>
Signed-off-by: Paulo Alcantara (SUSE) <pc@manguebit.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
(cherry picked from commit e8f5f84)
Signed-off-by: Brett Mastbergen <bmastbergen@ciq.com>1 parent 2668eeb commit 3bdb78f
1 file changed
+16
-7
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5048 | 5048 | | |
5049 | 5049 | | |
5050 | 5050 | | |
| 5051 | + | |
5051 | 5052 | | |
5052 | | - | |
5053 | | - | |
| 5053 | + | |
| 5054 | + | |
| 5055 | + | |
5054 | 5056 | | |
5055 | 5057 | | |
5056 | 5058 | | |
| |||
5059 | 5061 | | |
5060 | 5062 | | |
5061 | 5063 | | |
| 5064 | + | |
| 5065 | + | |
| 5066 | + | |
| 5067 | + | |
| 5068 | + | |
| 5069 | + | |
5062 | 5070 | | |
5063 | 5071 | | |
5064 | 5072 | | |
| |||
5108 | 5116 | | |
5109 | 5117 | | |
5110 | 5118 | | |
5111 | | - | |
5112 | 5119 | | |
5113 | 5120 | | |
5114 | | - | |
5115 | | - | |
| 5121 | + | |
| 5122 | + | |
5116 | 5123 | | |
5117 | | - | |
5118 | | - | |
| 5124 | + | |
| 5125 | + | |
5119 | 5126 | | |
5120 | 5127 | | |
5121 | 5128 | | |
5122 | 5129 | | |
| 5130 | + | |
| 5131 | + | |
5123 | 5132 | | |
5124 | 5133 | | |
5125 | 5134 | | |
| |||
0 commit comments