CVE-2021-47004

CVE-2021-47004

High · published February 28, 2024

CVSS v3.1
7.1
EPSS
0%
Percentile
14.1
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

f2fs: fix to avoid touching checkpointed data in get_victim()

In CP disabling mode, there are two issues when using LFS or SSR | AT_SSR

mode to select victim:

1. LFS is set to find source section during GC, the victim should have

no checkpointed data, since after GC, section could not be set free for

reuse.

Previously, we only check valid chpt blocks in current segment rather

than section, fix it.

2. SSR | AT_SSR are set to find target segment for writes which can be

fully filled by checkpointed and newly written blocks, we should never

select such segment, otherwise it can cause panic or data corruption

during allocation, potential case is described as below:

a) target segment has 'n' (n < 512) ckpt valid blocks

b) GC migrates 'n' valid blocks to other segment (segment is still

in dirty list)

c) GC migrates '512 - n' blocks to target segment (segment has 'n'

cp_vblocks and '512 - n' vblocks)

d) If GC selects target segment via {AT,}SSR allocator, however there

is no free space in targe segment.

The record
Technical detail
CVSS v3.1
7.1 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00238 · 14.1th percentile
Published
2024-02-28T14:15Z
Affected products (3)
ProductVersionsFixed in
linux/linux_kernel≥ 4.20, < 5.10.385.10.38
linux/linux_kernel≥ 5.11, < 5.11.225.11.22
linux/linux_kernel≥ 5.12, < 5.12.55.12.5
References (8)
EPSS history
Timeline
  • 28 FEB 08:13Z
    f2fs: fix to avoid touching checkpointed data in get_victim()
    cvelistv5