In the Linux kernel, the following vulnerability has been resolved:
ext4: fix memory leak in ext4_fill_super
Buffer head references must be released before calling kill_bdev();
otherwise the buffer head (and its page referenced by b_data) will not
be freed by kill_bdev, and subsequently that bh will be leaked.
If blocksizes differ, sb_set_blocksize() will kill current buffers and
page cache by using kill_bdev(). And then super block will be reread
again but using correct blocksize this time. sb_set_blocksize() didn't
fully free superblock page and buffer head, and being busy, they were
not freed and instead leaked.
This can easily be reproduced by calling an infinite loop of:
systemctl start <ext4_on_lvm>.mount, and
systemctl stop <ext4_on_lvm>.mount
... since systemd creates a cgroup for each slice which it mounts, and
the bh leak get amplified by a dying memory cgroup that also never
gets freed, and memory consumption is much more easily noticed.
Metrics
Affected Vendors & Products
References
History
Mon, 04 Nov 2024 13:15:00 +0000
Type | Values Removed | Values Added |
---|---|---|
Metrics |
ssvc
|
MITRE
Status: PUBLISHED
Assigner: Linux
Published: 2024-03-15T20:14:25.901Z
Updated: 2024-11-04T11:59:46.566Z
Reserved: 2024-03-04T18:12:48.838Z
Link: CVE-2021-47119
Vulnrichment
Updated: 2024-08-04T05:24:39.956Z
NVD
Status : Awaiting Analysis
Published: 2024-03-15T21:15:07.013
Modified: 2024-03-17T22:38:29.433
Link: CVE-2021-47119
Redhat