Subject: CVE-2024-38388: ALSA: hda/cs_dsp_ctl: Use private_free for control cleanup

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

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

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

ALSA: hda/cs_dsp_ctl: Use private_free for control cleanup

Use the control private_free callback to free the associated data
block. This ensures that the memory won't leak, whatever way the
control gets destroyed.

The original implementation didn't actually remove the ALSA
controls in hda_cs_dsp_control_remove(). It only freed the internal
tracking structure. This meant it was possible to remove/unload the
amp driver while leaving its ALSA controls still present in the
soundcard. Obviously attempting to access them could cause segfaults
or at least dereferencing stale pointers.

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

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

	Issue introduced in 6.0 with commit 3233b978af23 and fixed in 6.1.93 with commit 191dc1b2ff0f
	Issue introduced in 6.0 with commit 3233b978af23 and fixed in 6.6.33 with commit 6e359be49750
	Issue introduced in 6.0 with commit 3233b978af23 and fixed in 6.9.4 with commit 3291486af563
	Issue introduced in 6.0 with commit 3233b978af23 and fixed in 6.10 with commit 172811e3a557

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-38388
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:
	sound/pci/hda/hda_cs_dsp_ctl.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/191dc1b2ff0fb35e7aff15a53224837637df8bff
	https://git.kernel.org/stable/c/6e359be4975006ff72818e79dad8fe48293f2eb2
	https://git.kernel.org/stable/c/3291486af5636540980ea55bae985f3eaa5b0740
	https://git.kernel.org/stable/c/172811e3a557d8681a5e2d0f871dc04a2d17eb13