Subject: CVE-2024-26993: fs: sysfs: Fix reference leak in sysfs_break_active_protection()

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

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

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

fs: sysfs: Fix reference leak in sysfs_break_active_protection()

The sysfs_break_active_protection() routine has an obvious reference
leak in its error path.  If the call to kernfs_find_and_get() fails then
kn will be NULL, so the companion sysfs_unbreak_active_protection()
routine won't get called (and would only cause an access violation by
trying to dereference kn->parent if it was called).  As a result, the
reference to kobj acquired at the start of the function will never be
released.

Fix the leak by adding an explicit kobject_put() call when kn is NULL.

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

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

	Issue introduced in 4.19 with commit 2afc9166f79b and fixed in 4.19.313 with commit f28bba37fe24
	Issue introduced in 4.19 with commit 2afc9166f79b and fixed in 5.4.275 with commit 57baab0f376b
	Issue introduced in 4.19 with commit 2afc9166f79b and fixed in 5.10.216 with commit 84bd4c2ae9c3
	Issue introduced in 4.19 with commit 2afc9166f79b and fixed in 5.15.157 with commit 43f00210cb25
	Issue introduced in 4.19 with commit 2afc9166f79b and fixed in 6.1.88 with commit 5d43e072285e
	Issue introduced in 4.19 with commit 2afc9166f79b and fixed in 6.6.29 with commit ac107356aabc
	Issue introduced in 4.19 with commit 2afc9166f79b and fixed in 6.8.8 with commit a4c99b57d43b
	Issue introduced in 4.19 with commit 2afc9166f79b and fixed in 6.9 with commit a90bca2228c0
	Issue introduced in 3.16.62 with commit e8a37b2fd5b5
	Issue introduced in 3.18.121 with commit a6abc93760dd
	Issue introduced in 4.4.154 with commit 461a6385e58e
	Issue introduced in 4.9.125 with commit 8a5e02a0f46e
	Issue introduced in 4.14.68 with commit c984f4d1d40a
	Issue introduced in 4.18.6 with commit 807d1d299a04

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-26993
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/sysfs/file.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/f28bba37fe244889b81bb5c508d3f6e5c6e342c5
	https://git.kernel.org/stable/c/57baab0f376bec8f54b0fe6beb8f77a57c228063
	https://git.kernel.org/stable/c/84bd4c2ae9c3d0a7d3a5c032ea7efff17af17e17
	https://git.kernel.org/stable/c/43f00210cb257bcb0387e8caeb4b46375d67f30c
	https://git.kernel.org/stable/c/5d43e072285e81b0b63cee7189b3357c7768a43b
	https://git.kernel.org/stable/c/ac107356aabc362aaeb77463e814fc067a5d3957
	https://git.kernel.org/stable/c/a4c99b57d43bab45225ba92d574a8683f9edc8e4
	https://git.kernel.org/stable/c/a90bca2228c0646fc29a72689d308e5fe03e6d78