CVE-2024-53130
Severity CVSS v4.0:
Pending analysis
Type:
CWE-476
NULL Pointer Dereference
Publication date:
04/12/2024
Last modified:
03/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
nilfs2: fix null-ptr-deref in block_dirty_buffer tracepoint<br />
<br />
When using the "block:block_dirty_buffer" tracepoint, mark_buffer_dirty()<br />
may cause a NULL pointer dereference, or a general protection fault when<br />
KASAN is enabled.<br />
<br />
This happens because, since the tracepoint was added in<br />
mark_buffer_dirty(), it references the dev_t member bh->b_bdev->bd_dev<br />
regardless of whether the buffer head has a pointer to a block_device<br />
structure.<br />
<br />
In the current implementation, nilfs_grab_buffer(), which grabs a buffer<br />
to read (or create) a block of metadata, including b-tree node blocks,<br />
does not set the block device, but instead does so only if the buffer is<br />
not in the "uptodate" state for each of its caller block reading<br />
functions. However, if the uptodate flag is set on a folio/page, and the<br />
buffer heads are detached from it by try_to_free_buffers(), and new buffer<br />
heads are then attached by create_empty_buffers(), the uptodate flag may<br />
be restored to each buffer without the block device being set to<br />
bh->b_bdev, and mark_buffer_dirty() may be called later in that state,<br />
resulting in the bug mentioned above.<br />
<br />
Fix this issue by making nilfs_grab_buffer() always set the block device<br />
of the super block structure to the buffer head, regardless of the state<br />
of the buffer&#39;s uptodate flag.
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:*:*:*:*:*:*:*:* | 3.9 (including) | 6.1.119 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.6.0 (including) | 6.6.63 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.11.0 (including) | 6.11.10 (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/0a5014ad37c77ac6a2c525137c00a0e1724f6020
- https://git.kernel.org/stable/c/0ce59fb1c73fdd5b6028226aeb46259a0cdc0957
- https://git.kernel.org/stable/c/2026559a6c4ce34db117d2db8f710fe2a9420d5a
- https://git.kernel.org/stable/c/7af3309c7a2ef26831a67125b11c34a7e01c1b2a
- https://git.kernel.org/stable/c/86b19031dbc79abc378dfae357f6ea33ebeb0c95
- https://git.kernel.org/stable/c/b0e4765740040c44039282057ecacd7435d1d2ba
- https://git.kernel.org/stable/c/d904e4d845aafbcfd8a40c1df7d999f02f062be8
- https://git.kernel.org/stable/c/ffc440a76a0f476a7e6ea838ec0dc8e9979944d1
- https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html
- https://lists.debian.org/debian-lts-announce/2025/03/msg00002.html



