CVE-2021-47119

ext4: fix memory leak in ext4_fill_super

published March 15, 2024

CVSS
—
EPSS
0%
Percentile
15.7
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00252 · 15.7th percentile
Published
2024-03-15T20:14Z
EPSS history
Timeline
  • 15 MAR 20:14Z
    ext4: fix memory leak in ext4_fill_super
    cvelistv5