In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix warning when reconnecting channel
When reconnecting a channel in smb2reconnectserver(), a dummy tcon is passed down to smb2reconnect() with ->queryinterface uninitialized, so we can't call queuedelayedwork() on it.
Fix the following warning by ensuring that we're queueing the delayed worker from correct tcon.
WARNING: CPU: 4 PID: 1126 at kernel/workqueue.c:2498 queuedelayedwork+0x1d2/0x200 Modules linked in: cifs cifsarc4 nlsucs2utils cifsmd4 [last unloaded: cifs] CPU: 4 UID: 0 PID: 1126 Comm: kworker/4:0 Not tainted 6.16.0-rc3 #5 PREEMPT(voluntary) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-4.fc42 04/01/2014 Workqueue: cifsiod smb2reconnectserver [cifs] RIP: 0010:queuedelayedwork+0x1d2/0x200 Code: 41 5e 41 5f e9 7f ee ff ff 90 0f 0b 90 e9 5d ff ff ff bf 02 00 00 00 e8 6c f3 07 00 89 c3 eb bd 90 0f 0b 90 e9 57 f> 0b 90 e9 65 fe ff ff 90 0f 0b 90 e9 72 fe ff ff 90 0f 0b 90 e9 RSP: 0018:ffffc900014afad8 EFLAGS: 00010003 RAX: 0000000000000000 RBX: ffff888124d99988 RCX: ffffffff81399cc1 RDX: dffffc0000000000 RSI: ffff888114326e00 RDI: ffff888124d999f0 RBP: 000000000000ea60 R08: 0000000000000001 R09: ffffed10249b3331 R10: ffff888124d9998f R11: 0000000000000004 R12: 0000000000000040 R13: ffff888114326e00 R14: ffff888124d999d8 R15: ffff888114939020 FS: 0000000000000000(0000) GS:ffff88829f7fe000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007ffe7a2b4038 CR3: 0000000120a6f000 CR4: 0000000000750ef0 PKRU: 55555554 Call Trace: <TASK> queuedelayedworkon+0xb4/0xc0 smb2reconnect+0xb22/0xf50 [cifs] smb2reconnectserver+0x413/0xd40 [cifs] ? _pfxsmb2reconnectserver+0x10/0x10 [cifs] ? localclocknoinstr+0xd/0xd0 ? localclock+0x15/0x30 ? lockrelease+0x29b/0x390 processonework+0x4c5/0xa10 ? _pfxprocessonework+0x10/0x10 ? _listaddvalidorreport+0x37/0x120 workerthread+0x2f1/0x5a0 ? _kthreadparkme+0xde/0x100 ? _pfxworkerthread+0x10/0x10 kthread+0x1fe/0x380 ? kthread+0x10f/0x380 ? _pfxkthread+0x10/0x10 ? localclocknoinstr+0xd/0xd0 ? retfromfork+0x1b/0x1f0 ? localclock+0x15/0x30 ? lockrelease+0x29b/0x390 ? rcuiswatching+0x20/0x50 ? _pfxkthread+0x10/0x10 retfromfork+0x15b/0x1f0 ? _pfxkthread+0x10/0x10 retfromforkasm+0x1a/0x30 </TASK> irq event stamp: 1116206 hardirqs last enabled at (1116205): [<ffffffff8143af42>] _upconsolesem+0x52/0x60 hardirqs last disabled at (1116206): [<ffffffff81399f0e>] queuedelayedworkon+0x6e/0xc0 softirqs last enabled at (1116138): [<ffffffffc04562fd>] _smbsendrqst+0x42d/0x950 [cifs] softirqs last disabled at (1116136): [<ffffffff823d35e1>] releasesock+0x21/0xf0