Subject: CVE-2021-47355: atm: nicstar: Fix possible use-after-free in nicstar_cleanup()

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

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

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

atm: nicstar: Fix possible use-after-free in nicstar_cleanup()

This module's remove path calls del_timer(). However, that function
does not wait until the timer handler finishes. This means that the
timer handler may still be running after the driver's remove function
has finished, which would result in a use-after-free.

Fix by calling del_timer_sync(), which makes sure the timer handler
has finished, and unable to re-schedule itself.

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

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

	Fixed in 4.4.276 with commit 99779c9d9ffc
	Fixed in 4.9.276 with commit 4e2a0848ea2c
	Fixed in 4.14.240 with commit c47156963265
	Fixed in 4.19.198 with commit a7a7b2848312
	Fixed in 5.4.133 with commit bdf5334250c6
	Fixed in 5.10.51 with commit a7f7c42e3115
	Fixed in 5.12.18 with commit 2f958b6f6ba0
	Fixed in 5.13.3 with commit 5b991df88810
	Fixed in 5.14 with commit 34e7434ba4e9

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-47355
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/atm/nicstar.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/99779c9d9ffc7775da6f7fd8a7c93ac61657bed5
	https://git.kernel.org/stable/c/4e2a0848ea2cab0716d46f85a8ccd5fa9a493e51
	https://git.kernel.org/stable/c/c471569632654e57c83512e0fc1ba0dbb4544ad6
	https://git.kernel.org/stable/c/a7a7b2848312cc4c3a42b6e42a8ab2e441857aba
	https://git.kernel.org/stable/c/bdf5334250c69fabf555b7322c75249ea7d5f148
	https://git.kernel.org/stable/c/a7f7c42e31157d1f0871d6a8e1a0b73a6b4ea785
	https://git.kernel.org/stable/c/2f958b6f6ba0854b39be748d21dfe71e0fe6580f
	https://git.kernel.org/stable/c/5b991df8881088448cb223e769e37cab8dd40706
	https://git.kernel.org/stable/c/34e7434ba4e97f4b85c1423a59b2922ba7dff2ea