Subject: CVE-2024-45007: char: xillybus: Don't destroy workqueue from work item running on it

From: Greg Kroah-Hartman <[email-masked]>

Description
===========

In the Linux kernel, the following vulnerability has been resolved:

char: xillybus: Don't destroy workqueue from work item running on it

Triggered by a kref decrement, destroy_workqueue() may be called from
within a work item for destroying its own workqueue. This illegal
situation is averted by adding a module-global workqueue for exclusive
use of the offending work item. Other work items continue to be queued
on per-device workqueues to ensure performance.

The Linux kernel CVE team has assigned CVE-2024-45007 to this issue.

Affected and fixed versions
===========================

	Fixed in 5.15.166 with commit 409b495f8e33
	Fixed in 6.1.107 with commit 5d3567caff2a
	Fixed in 6.6.48 with commit a7ad105b1225
	Fixed in 6.10.7 with commit aa1a19724fa2
	Fixed in 6.11 with commit ccbde4b128ef

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2024-45007
will be updated if fixes are backported, please check that for the most
up to date information about this issue.

Affected files
==============

The file(s) affected by this issue are:
	drivers/char/xillybus/xillyusb.c

Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/409b495f8e3300d5fba08bc817fa8825dae48cc9
	https://git.kernel.org/stable/c/5d3567caff2a1d678aa40cc74a54e1318941fad3
	https://git.kernel.org/stable/c/a7ad105b12256ec7fb6d6d1a0e2e60f00b7da157
	https://git.kernel.org/stable/c/aa1a19724fa2c31e97a9be48baedd4692b265157
	https://git.kernel.org/stable/c/ccbde4b128ef9c73d14d0d7817d68ef795f6d131