Subject: CVE-2021-47509: ALSA: pcm: oss: Limit the period size to 16MB

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

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

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

ALSA: pcm: oss: Limit the period size to 16MB

Set the practical limit to the period size (the fragment shift in OSS)
instead of a full 31bit; a too large value could lead to the exhaust
of memory as we allocate temporary buffers of the period size, too.

As of this patch, we set to 16MB limit, which should cover all use
cases.

The Linux kernel CVE team has assigned CVE-2021-47509 to this issue.

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

	Fixed in 4.4.295 with commit d1bb703ad050
	Fixed in 4.9.293 with commit b02a41eebcc3
	Fixed in 4.14.258 with commit be55f306396c
	Fixed in 4.19.221 with commit 2e54cf6794bf
	Fixed in 5.4.165 with commit 76f19e4cbb54
	Fixed in 5.10.85 with commit ad45babf7886
	Fixed in 5.15.8 with commit 35a3e5110321
	Fixed in 5.16 with commit 8839c8c0f77a

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-2021-47509
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/core/oss/pcm_oss.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/d1bb703ad050de9095f10b2d3416c32921ac6bcc
	https://git.kernel.org/stable/c/b02a41eebcc36d4f07196780f2e165ca2c499257
	https://git.kernel.org/stable/c/be55f306396cd62c6889286a7194fd8b53363aeb
	https://git.kernel.org/stable/c/2e54cf6794bf82a54aaefc78da13819aea9cd28a
	https://git.kernel.org/stable/c/76f19e4cbb548e28547f8c328aa0bfb3a10222d3
	https://git.kernel.org/stable/c/ad45babf7886e7a212ee1d5eda9ef49f696db43c
	https://git.kernel.org/stable/c/35a3e511032146941085f87dd9fb5b82ea5c00a2
	https://git.kernel.org/stable/c/8839c8c0f77ab8fc0463f4ab8b37fca3f70677c2