Subject: CVE-2024-26927: ASoC: SOF: Add some bounds checking to firmware data

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

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

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

ASoC: SOF: Add some bounds checking to firmware data

Smatch complains about "head->full_size - head->header_size" can
underflow.  To some extent, we're always going to have to trust the
firmware a bit.  However, it's easy enough to add a check for negatives,
and let's add a upper bounds check as well.

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

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

	Issue introduced in 5.19 with commit d2458baa799f and fixed in 6.1.83 with commit d133d67e7e72
	Issue introduced in 5.19 with commit d2458baa799f and fixed in 6.6.23 with commit ced7df8b3c5c
	Issue introduced in 5.19 with commit d2458baa799f and fixed in 6.7.11 with commit 044e22066715
	Issue introduced in 5.19 with commit d2458baa799f and fixed in 6.8.2 with commit 9eeb8e1231f6
	Issue introduced in 5.19 with commit d2458baa799f and fixed in 6.9 with commit 98f681b0f84c

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-26927
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/soc/sof/ipc3-loader.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/d133d67e7e724102d1e53009c4f88afaaf3e167c
	https://git.kernel.org/stable/c/ced7df8b3c5c4751244cad79011e86cf1f809153
	https://git.kernel.org/stable/c/044e220667157fb9d59320341badec59cf45ba48
	https://git.kernel.org/stable/c/9eeb8e1231f6450c574c1db979122e171a1813ab
	https://git.kernel.org/stable/c/98f681b0f84cfc3a1d83287b77697679e0398306