Linux: smb: client: fix races in cifsd thread creation
What fixes it
- 0eee1e6cddd1d9ce14da06e0238ca8d3362dec90LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix races in cifsd thread creation
The cifsd demultiplex thread can run and access tcp_ses before the parent thread has finished populating tcp_ses, which the worker thread accesses locklessly.
Also, the kthread_run macro may start the thread before returning the thread pointer. Because the pointer is part of the structure that the thread can access, if the kernel is preempted after the thread is spawned, but before the thread pointer is populated and the thread attempts to exit, it will sleep, waiting for a SIGKILL signal.
Fix this by moving creation of the thread to after all of tcp_ses'es fields are populated, and spawning the thread last, using a split kthread_create/wake_up_process logic.
Text from CVE List
Affected versions 10
- Linuxaffected: aaf737adb6937339494d5a7111f0433cd9676db8 before cfa09f63e75cf440c9be97d1e73d509bfbb2c2c5CVE List
- Linuxaffected: aaf737adb6937339494d5a7111f0433cd9676db8 before ee8f811cbac56ffb738b3a73671a9e75b0f56e99CVE List
- Linuxaffected: aaf737adb6937339494d5a7111f0433cd9676db8 before 0eee1e6cddd1d9ce14da06e0238ca8d3362dec90CVE List
- Linuxaffected: aaf737adb6937339494d5a7111f0433cd9676db8 before e8a5cf2ff5a13fefb228f2069e29dd7d8e37185dCVE List
- Linuxaffected: 2.6.22CVE List
- Linuxunaffected: all versions before 2.6.22CVE List
- Linuxunaffected: 6.6.158 through 6.6.*CVE List
- Linuxunaffected: 6.12.111 through 6.12.*CVE List
- Linuxunaffected: 6.18.53 through 6.18.*CVE List
- Linuxunaffected: 7.2CVE List
References 4
- git.kernel.org/stable/c/cfa09f63e75cf440c9be97d1e73d509bfbb2c2c5Referencevia CVE List
- git.kernel.org/stable/c/ee8f811cbac56ffb738b3a73671a9e75b0f56e99Referencevia CVE List
- git.kernel.org/stable/c/0eee1e6cddd1d9ce14da06e0238ca8d3362dec90Referencevia CVE List
- git.kernel.org/stable/c/e8a5cf2ff5a13fefb228f2069e29dd7d8e37185dReferencevia CVE List