UBUNTU-CVE-2024-42149
In the Linux kernel, the following vulnerability has been resolved: fs: don't misleadingly warn during thaw operations The block device may have been frozen before it was claimed by a filesystem. Concurrently another process might try to mount that frozen block device and has temporarily claimed the block device for that purpose causing a concurrent fs_bdev_thaw() to end up here. The mounter is already about to abort mounting because they still saw an elevanted bdev->bd_fsfreeze_count so get_bdev_super() will return NULL in that case. For example, P1 calls dm_suspend() which calls into bdev_freeze() before the block device has been claimed by the filesystem. This brings bdev->bd_fsfreeze_count to 1 and no call into fs_bdev_freeze() is required. Now P2 tries to mount that frozen block device. It claims it and checks bdev->bd_fsfreeze_count. As it's elevated it aborts mounting. In the meantime P3 called dm_resume(). P3 sees that the block device is already claimed by a filesystem and calls into fs_bdev_thaw(). P3 takes a passive reference and realizes that the filesystem isn't ready yet. P3 puts itself to sleep to wait for the filesystem to become ready. P2 now puts the last active reference to the filesystem and marks it as dying. P3 gets woken, sees that the filesystem is dying and get_bdev_super() fails.
02 / AFFECTED SOFTWARE
Affected packages
1 explicit affected versions
15 explicit affected versions
12 explicit affected versions
7 explicit affected versions
26 explicit affected versions
37 explicit affected versions
10 explicit affected versions
10 explicit affected versions
13 explicit affected versions
13 explicit affected versions
16 explicit affected versions
9 explicit affected versions
15 explicit affected versions
29 explicit affected versions
10 explicit affected versions
11 explicit affected versions
7 explicit affected versions
37 explicit affected versions
8 explicit affected versions
4 explicit affected versions
8 explicit affected versions
19 explicit affected versions
8 explicit affected versions
23 explicit affected versions
7 explicit affected versions
10 explicit affected versions
1 explicit affected versions
33 explicit affected versions
15 explicit affected versions
12 explicit affected versions
16 explicit affected versions
13 explicit affected versions
12 explicit affected versions
12 explicit affected versions
38 explicit affected versions
51 explicit affected versions
13 explicit affected versions
10 explicit affected versions
10 explicit affected versions
13 explicit affected versions
12 explicit affected versions
1 explicit affected versions
10 explicit affected versions
5 explicit affected versions
8 explicit affected versions
10 explicit affected versions
13 explicit affected versions
21 explicit affected versions
6 explicit affected versions
13 explicit affected versions
12 explicit affected versions
11 explicit affected versions
14 explicit affected versions
7 explicit affected versions
14 explicit affected versions
6 explicit affected versions
8 explicit affected versions
12 explicit affected versions
26 explicit affected versions
7 explicit affected versions
23 explicit affected versions
14 explicit affected versions
5 explicit affected versions
3 explicit affected versions
26 explicit affected versions
12 explicit affected versions
44 explicit affected versions
4 explicit affected versions
4 explicit affected versions
16 explicit affected versions
9 explicit affected versions
12 explicit affected versions
13 explicit affected versions
7 explicit affected versions
6 explicit affected versions
13 explicit affected versions
7 explicit affected versions
10 explicit affected versions
14 explicit affected versions
18 explicit affected versions
3 explicit affected versions
16 explicit affected versions
43 explicit affected versions
14 explicit affected versions
5 explicit affected versions
7 explicit affected versions
11 explicit affected versions
35 explicit affected versions
12 explicit affected versions
13 explicit affected versions
6 explicit affected versions
12 explicit affected versions
50 explicit affected versions
14 explicit affected versions
12 explicit affected versions
27 explicit affected versions
12 explicit affected versions
7 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
In the Linux kernel, the following vulnerability has been resolved: fs: don't misleadingly warn during thaw operations The block device may have been frozen before it was claimed by a filesystem. Concurrently another process might try to mount that frozen block device and has temporarily claimed the block device for that purpose causing a concurrent fs_bdev_thaw() to end up here. The mounter is already about to abort mounting because they still saw an elevanted bdev->bd_fsfreeze_count so get_bdev_super() will return NULL in that case. For example, P1 calls dm_suspend() which calls into bdev_freeze() before the block device has been claimed by the filesystem. This brings bdev->bd_fsfreeze_count to 1 and no call into fs_bdev_freeze() is required. Now P2 tries to mount that frozen block device. It claims it and checks bdev->bd_fsfreeze_count. As it's elevated it aborts mounting. In the meantime P3 called dm_resume(). P3 sees that the block device is already claimed by a filesystem and calls into fs_bdev_thaw(). P3 takes a passive reference and realizes that the filesystem isn't ready yet. P3 puts itself to sleep to wait for the filesystem to become ready. P2 now puts the last active reference to the filesystem and marks it as dying. P3 gets woken, sees that the filesystem is dying and get_bdev_super() fails.
05 / REFERENCES
Further evidence
- https://git.kernel.org/linus/2ae4db5647d807efb6a87c09efaa6d1db9c905d7
- https://git.kernel.org/stable/c/25b1e3906e050d452427bc51620bb7f0a591373a
- https://git.kernel.org/stable/c/2ae4db5647d807efb6a87c09efaa6d1db9c905d7
- https://ubuntu.com/security/CVE-2024-42149
- https://ubuntu.com/security/notices/USN-7089-1
- https://ubuntu.com/security/notices/USN-7089-2
- https://ubuntu.com/security/notices/USN-7089-3
- https://ubuntu.com/security/notices/USN-7089-4
- https://ubuntu.com/security/notices/USN-7089-5
- https://ubuntu.com/security/notices/USN-7089-6
- https://ubuntu.com/security/notices/USN-7089-7
- https://ubuntu.com/security/notices/USN-7090-1
- https://ubuntu.com/security/notices/USN-7095-1
- https://ubuntu.com/security/notices/USN-7156-1
- https://www.cve.org/CVERecord?id=CVE-2024-42149