Subject: CVE-2024-49988: ksmbd: add refcnt to ksmbd_conn struct

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

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

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

ksmbd: add refcnt to ksmbd_conn struct

When sending an oplock break request, opinfo->conn is used,
But freed ->conn can be used on multichannel.
This patch add a reference count to the ksmbd_conn struct
so that it can be freed when it is no longer used.

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

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

	Fixed in 6.6.55 with commit 18f06bacc197
	Fixed in 6.10.14 with commit 9fd3cde4628b
	Fixed in 6.11.3 with commit e9dac92f4482
	Fixed in 6.12-rc1 with commit ee426bfb9d09

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-49988
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:
	fs/smb/server/connection.c
	fs/smb/server/connection.h
	fs/smb/server/oplock.c
	fs/smb/server/vfs_cache.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/18f06bacc197d4ac9b518ad1c69999bc3d83e7aa
	https://git.kernel.org/stable/c/9fd3cde4628bcd3549ab95061f2bab74d2ed4f3b
	https://git.kernel.org/stable/c/e9dac92f4482a382e8c0fe1bc243da5fc3526b0c
	https://git.kernel.org/stable/c/ee426bfb9d09b29987369b897fe9b6485ac2be27