Subject: CVE-2024-27389: pstore: inode: Only d_invalidate() is needed

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

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

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

pstore: inode: Only d_invalidate() is needed

Unloading a modular pstore backend with records in pstorefs would
trigger the dput() double-drop warning:

  WARNING: CPU: 0 PID: 2569 at fs/dcache.c:762 dput.part.0+0x3f3/0x410

Using the combo of d_drop()/dput() (as mentioned in
Documentation/filesystems/vfs.rst) isn't the right approach here, and
leads to the reference counting problem seen above. Use d_invalidate()
and update the code to not bother checking for error codes that can
never happen.

---

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

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

	Issue introduced in 5.8 with commit 609e28bb139e and fixed in 6.1.83 with commit db6e5e16f1ee
	Issue introduced in 5.8 with commit 609e28bb139e and fixed in 6.6.23 with commit 4cdf9006fc09
	Issue introduced in 5.8 with commit 609e28bb139e and fixed in 6.7.11 with commit cb9e802e49c2
	Issue introduced in 5.8 with commit 609e28bb139e and fixed in 6.8.2 with commit 340682ed1932
	Issue introduced in 5.8 with commit 609e28bb139e and fixed in 6.9 with commit a43e0fc5e913

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-27389
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/pstore/inode.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/db6e5e16f1ee9e3b01d2f71c7f0ba945f4bf0f4e
	https://git.kernel.org/stable/c/4cdf9006fc095af71da80e9b5f48a32e991b9ed3
	https://git.kernel.org/stable/c/cb9e802e49c24eeb3af35e9e8c04d526f35f112a
	https://git.kernel.org/stable/c/340682ed1932b8e3bd0bfc6c31a0c6354eb57cc6
	https://git.kernel.org/stable/c/a43e0fc5e9134a46515de2f2f8d4100b74e50de3