Subject: CVE-2024-46781: nilfs2: fix missing cleanup on rollforward recovery error

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

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

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

nilfs2: fix missing cleanup on rollforward recovery error

In an error injection test of a routine for mount-time recovery, KASAN
found a use-after-free bug.

It turned out that if data recovery was performed using partial logs
created by dsync writes, but an error occurred before starting the log
writer to create a recovered checkpoint, the inodes whose data had been
recovered were left in the ns_dirty_files list of the nilfs object and
were not freed.

Fix this issue by cleaning up inodes that have read the recovery data if
the recovery routine fails midway before the log writer starts.

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

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

	Issue introduced in 2.6.30 with commit 0f3e1c7f23f8 and fixed in 4.19.322 with commit 35a9a7a7d946
	Issue introduced in 2.6.30 with commit 0f3e1c7f23f8 and fixed in 5.4.284 with commit da02f9eb3333
	Issue introduced in 2.6.30 with commit 0f3e1c7f23f8 and fixed in 5.10.226 with commit 07e4dc2fe000
	Issue introduced in 2.6.30 with commit 0f3e1c7f23f8 and fixed in 5.15.167 with commit 8e2d1e9d93c4
	Issue introduced in 2.6.30 with commit 0f3e1c7f23f8 and fixed in 6.1.110 with commit ca92c4bff283
	Issue introduced in 2.6.30 with commit 0f3e1c7f23f8 and fixed in 6.6.51 with commit 9d8c3a585d56
	Issue introduced in 2.6.30 with commit 0f3e1c7f23f8 and fixed in 6.10.10 with commit 1cf1f7e8cd47
	Issue introduced in 2.6.30 with commit 0f3e1c7f23f8 and fixed in 6.11 with commit 5787fcaab9eb

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-46781
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/nilfs2/recovery.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/35a9a7a7d94662146396199b0cfd95f9517cdd14
	https://git.kernel.org/stable/c/da02f9eb333333b2e4f25d2a14967cff785ac82e
	https://git.kernel.org/stable/c/07e4dc2fe000ab008bcfe90be4324ef56b5b4355
	https://git.kernel.org/stable/c/8e2d1e9d93c4ec51354229361ac3373058529ec4
	https://git.kernel.org/stable/c/ca92c4bff2833cb30d493b935168d6cccd5c805d
	https://git.kernel.org/stable/c/9d8c3a585d564d776ee60d4aabec59b404be7403
	https://git.kernel.org/stable/c/1cf1f7e8cd47244fa947d357ef1f642d91e219a3
	https://git.kernel.org/stable/c/5787fcaab9eb5930f5378d6a1dd03d916d146622