CVE-2024-49959
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
21/10/2024
Last modified:
03/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
jbd2: stop waiting for space when jbd2_cleanup_journal_tail() returns error<br />
<br />
In __jbd2_log_wait_for_space(), we might call jbd2_cleanup_journal_tail()<br />
to recover some journal space. But if an error occurs while executing<br />
jbd2_cleanup_journal_tail() (e.g., an EIO), we don&#39;t stop waiting for free<br />
space right away, we try other branches, and if j_committing_transaction<br />
is NULL (i.e., the tid is 0), we will get the following complain:<br />
<br />
============================================<br />
JBD2: I/O error when updating journal superblock for sdd-8.<br />
__jbd2_log_wait_for_space: needed 256 blocks and only had 217 space available<br />
__jbd2_log_wait_for_space: no way to get more journal space in sdd-8<br />
------------[ cut here ]------------<br />
WARNING: CPU: 2 PID: 139804 at fs/jbd2/checkpoint.c:109 __jbd2_log_wait_for_space+0x251/0x2e0<br />
Modules linked in:<br />
CPU: 2 PID: 139804 Comm: kworker/u8:3 Not tainted 6.6.0+ #1<br />
RIP: 0010:__jbd2_log_wait_for_space+0x251/0x2e0<br />
Call Trace:<br />
<br />
add_transaction_credits+0x5d1/0x5e0<br />
start_this_handle+0x1ef/0x6a0<br />
jbd2__journal_start+0x18b/0x340<br />
ext4_dirty_inode+0x5d/0xb0<br />
__mark_inode_dirty+0xe4/0x5d0<br />
generic_update_time+0x60/0x70<br />
[...]<br />
============================================<br />
<br />
So only if jbd2_cleanup_journal_tail() returns 1, i.e., there is nothing to<br />
clean up at the moment, continue to try to reclaim free space in other ways.<br />
<br />
Note that this fix relies on commit 6f6a6fda2945 ("jbd2: fix ocfs2 corrupt<br />
when updating journal superblock fails") to make jbd2_cleanup_journal_tail<br />
return the correct error code.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 2.6.28 (including) | 5.10.227 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.168 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.113 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.55 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.10.14 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.11 (including) | 6.11.3 (excluding) |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/1c62dc0d82c62f0dc8fcdc4843208e522acccaf5
- https://git.kernel.org/stable/c/3ced0fe6c0eff032733ea8b38778b34707270138
- https://git.kernel.org/stable/c/481e8f18a290e39e04ddb7feb2bb2a2cc3b213ed
- https://git.kernel.org/stable/c/70bae48377a2c4296fd3caf4caf8f11079111019
- https://git.kernel.org/stable/c/801a35dfef6996f3d5eaa96a59caf00440d9165e
- https://git.kernel.org/stable/c/c6bf043b210eac67d35a114e345c4e5585672913
- https://git.kernel.org/stable/c/d5dc65370a746750dbb2f03eabcf86b18db65f32
- https://git.kernel.org/stable/c/ec7f8337c98ad281020ad1f11ba492462d80737a
- https://git.kernel.org/stable/c/f5cacdc6f2bb2a9bf214469dd7112b43dd2dd68a
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html
- https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html



