CVE-2021-47004 f2fs: fix to avoid touching checkpointed data in get_victim()

High 7.1 Published Updated

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.

All Linux kernel vulnerabilities

Sources

Also known as DEBIAN-CVE-2021-47004, GHSA-98fc-82jh-j626, UBUNTU-CVE-2021-47004.

Is CVE-2021-47004 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free