Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: comedi: Reinit dev->spinlock between attachments to low-level drivers `struct comedi_device` is the main controlling structure for a COMEDI device created by the COMEDI subsystem. It contains a member `spinlock` containing a spin-lock that is initialized by the COMEDI subsystem, but is reserved for use by a low-level driver attached to the COMEDI device (at least since commit 25436dc9d84f ("Staging: comedi: remove RT code")). Some COMEDI devices (those created on initialization of the COMEDI subsystem when the "comedi.comedi_num_legacy_minors" parameter is non-zero) can be attached to different low-level drivers over their lifetime using the `COMEDI_DEVCONFIG` ioctl command. This can result in inconsistent lock states being reported when there is a mismatch in the spin-lock locking levels used by each low-level driver to which the COMEDI device has been attached. Fix it by reinitializing `dev->spinlock` before calling the low-level driver's `attach` function pointer if `CONFIG_LOCKDEP` is enabled.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected ed9eccbe8970f6eedc1b978c157caf1251a896d4 before 3181c34b415c5464be9d34bff3e43ef63b747039; affected ed9eccbe8970f6eedc1b978c157caf1251a896d4 before 2b1f49e4fdff3ef0f8e9158bbb5b149e06287560; affected ed9eccbe8970f6eedc1b978c157caf1251a896d4 before 4d5ffe524903a30e2e0da7d16841a56bec2de55c; affected ed9eccbe8970f6eedc1b978c157caf1251a896d4 before c01bcc67a9a692d65508ebd480405b5e77d562b7; affected ed9eccbe8970f6eedc1b978c157caf1251a896d4 before 430291d8f3884f57ae0057049b0ca291453e29e1; affected ed9eccbe8970f6eedc1b978c157caf1251a896d4 before b89c026227712c367950bbae055a5b31073d3b30; affected ed9eccbe8970f6eedc1b978c157caf1251a896d4 before 83134a7a176ce5b4b19b6edecf4360e8d98d1a5a; affected ed9eccbe8970f6eedc1b978c157caf1251a896d4 before 4b9a9a6d71e3e252032f959fb3895a33acb5865c |
| Linux / Linux | affected 2.6.29; unaffected 0 before 2.6.29; unaffected 5.10.253 through 5.10.*; unaffected 5.15.203 through 5.15.*; unaffected 6.1.168 through 6.1.*; unaffected 6.6.134 through 6.6.*; unaffected 6.12.81 through 6.12.*; unaffected 6.18.22 through 6.18.*; unaffected 6.19.12 through 6.19.*; unaffected 7.0 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/3181c34b415c5464be9d34bff3e43ef63b747039
- https://git.kernel.org/stable/c/2b1f49e4fdff3ef0f8e9158bbb5b149e06287560
- https://git.kernel.org/stable/c/4d5ffe524903a30e2e0da7d16841a56bec2de55c
- https://git.kernel.org/stable/c/c01bcc67a9a692d65508ebd480405b5e77d562b7
- https://git.kernel.org/stable/c/430291d8f3884f57ae0057049b0ca291453e29e1
- https://git.kernel.org/stable/c/b89c026227712c367950bbae055a5b31073d3b30
- https://git.kernel.org/stable/c/83134a7a176ce5b4b19b6edecf4360e8d98d1a5a
- https://git.kernel.org/stable/c/4b9a9a6d71e3e252032f959fb3895a33acb5865c