Subject: CVE-2024-35908: tls: get psock ref after taking rxlock to avoid leak

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

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

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

tls: get psock ref after taking rxlock to avoid leak

At the start of tls_sw_recvmsg, we take a reference on the psock, and
then call tls_rx_reader_lock. If that fails, we return directly
without releasing the reference.

Instead of adding a new label, just take the reference after locking
has succeeded, since we don't need it before.

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

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

	Issue introduced in 6.0 with commit 4cbc325ed6b4 and fixed in 6.1.85 with commit 30fabe50a7ac
	Issue introduced in 6.0 with commit 4cbc325ed6b4 and fixed in 6.6.26 with commit f1b7f14130d7
	Issue introduced in 6.0 with commit 4cbc325ed6b4 and fixed in 6.8.5 with commit b565d294e3d5
	Issue introduced in 6.0 with commit 4cbc325ed6b4 and fixed in 6.9 with commit 417e91e85609

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-35908
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:
	net/tls/tls_sw.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/30fabe50a7ace3e9d57cf7f9288f33ea408491c8
	https://git.kernel.org/stable/c/f1b7f14130d782433bc98c1e1e41ce6b4d4c3096
	https://git.kernel.org/stable/c/b565d294e3d5aa809566a4d819835da11997d8b3
	https://git.kernel.org/stable/c/417e91e856099e9b8a42a2520e2255e6afe024be