CVE-2021-47004 f2fs: fix to avoid touching checkpointed data in get_victim()
A flaw in the Linux kernel f2fs filesystem can cause system panics or data corruption when checkpointing is disabled during garbage collection.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2021-47004?
CVE-2021-47004 is a high-severity denial of service vulnerability in Linux kernel, published on 28 Feb 2024. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
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.
Which versions are affected by CVE-2021-47004?
It affects 1 product.
Products include Linux kernel.
How do I fix CVE-2021-47004?
Apply the vendor's patch.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2021-47004 being exploited?
There is no known exploitation of CVE-2021-47004 in the wild and no public exploit code.
Other vulnerabilities in Linux kernel
Sources
Also known as DEBIAN-CVE-2021-47004, GHSA-98fc-82jh-j626, UBUNTU-CVE-2021-47004.