| From bippy-5f407fcff5a0 Mon Sep 17 00:00:00 2001 |
| From: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| To: <linux-cve-announce@vger.kernel.org> |
| Reply-to: <cve@kernel.org>, <linux-kernel@vger.kernel.org> |
| Subject: CVE-2024-53143: fsnotify: Fix ordering of iput() and watched_objects decrement |
| |
| Description |
| =========== |
| |
| In the Linux kernel, the following vulnerability has been resolved: |
| |
| fsnotify: Fix ordering of iput() and watched_objects decrement |
| |
| Ensure the superblock is kept alive until we're done with iput(). |
| Holding a reference to an inode is not allowed unless we ensure the |
| superblock stays alive, which fsnotify does by keeping the |
| watched_objects count elevated, so iput() must happen before the |
| watched_objects decrement. |
| This can lead to a UAF of something like sb->s_fs_info in tmpfs, but the |
| UAF is hard to hit because race orderings that oops are more likely, thanks |
| to the CHECK_DATA_CORRUPTION() block in generic_shutdown_super(). |
| |
| Also, ensure that fsnotify_put_sb_watched_objects() doesn't call |
| fsnotify_sb_watched_objects() on a superblock that may have already been |
| freed, which would cause a UAF read of sb->s_fsnotify_info. |
| |
| The Linux kernel CVE team has assigned CVE-2024-53143 to this issue. |
| |
| |
| Affected and fixed versions |
| =========================== |
| |
| Issue introduced in 6.10 with commit d2f277e26f521ccf6fb438463b41dba6123caabe and fixed in 6.11.11 with commit 45a8f8232a495221ed058191629f5c628f21601a |
| Issue introduced in 6.10 with commit d2f277e26f521ccf6fb438463b41dba6123caabe and fixed in 6.12.2 with commit 83af1cfa10d9aafdabd06b3655e07727f373b434 |
| Issue introduced in 6.10 with commit d2f277e26f521ccf6fb438463b41dba6123caabe and fixed in 6.13 with commit 21d1b618b6b9da46c5116c640ac4b1cc8d40d63a |
| |
| 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-53143 |
| 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/notify/mark.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/45a8f8232a495221ed058191629f5c628f21601a |
| https://git.kernel.org/stable/c/83af1cfa10d9aafdabd06b3655e07727f373b434 |
| https://git.kernel.org/stable/c/21d1b618b6b9da46c5116c640ac4b1cc8d40d63a |
| https://project-zero.issues.chromium.org/issues/379667898 |