CVE-2021-46982: f2fs: compress: fix race condition of overwrite vs truncate
In the Linux kernel, the following vulnerability has been resolved:
f2fs: compress: fix race condition of overwrite vs truncate
pos_fsstress testcase complains a panic as belew:
------------[ cut here ]------------
kernel BUG at fs/f2fs/compress.c:1082!
invalid opcode: 0000 [#1] SMP PTI
CPU: 4 PID: 2753477 Comm: kworker/u16:2 Tainted: G OE 5.12.0-rc1-custom #1
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-2 04/01/2014
Workqueue: writeback wb_workfn (flush-252:16)
RIP: 0010:prepare_compress_overwrite+0x4c0/0x760 [f2fs]
Call Trace:
f2fs_prepare_compress_overwrite+0x5f/0x80 [f2fs]
f2fs_write_cache_pages+0x468/0x8a0 [f2fs]
f2fs_write_data_pages+0x2a4/0x2f0 [f2fs]
do_writepages+0x38/0xc0
__writeback_single_inode+0x44/0x2a0
writeback_sb_inodes+0x223/0x4d0
__writeback_inodes_wb+0x56/0xf0
wb_writeback+0x1dd/0x290
wb_workfn+0x309/0x500
process_one_work+0x220/0x3c0
worker_thread+0x53/0x420
kthread+0x12f/0x150
ret_from_fork+0x22/0x30
The root cause is truncate() may race with overwrite as below,
so that one reference count left in page can not guarantee the
page attaching in mapping tree all the time, after truncation,
later find_lock_page() may return NULL pointer.
- prepare_compress_overwrite
- f2fs_pagecache_get_page
- unlock_page
- f2fs_setattr
- truncate_setsize
- truncate_inode_page
- delete_from_page_cache
- find_lock_page
Fix this by avoiding referencing updated page.
Security readout for executives and security teams
Plain-English summary
CVE-2021-46982 is a Linux kernel flaw in F2FS compression handling. A race between file overwrite and truncate operations can trigger a kernel BUG and panic. The main business risk is system instability or denial of service on hosts using affected kernels and F2FS compression.
Executive priority
Treat as a targeted infrastructure reliability issue, not a broad internet-facing emergency based on current evidence. Patch affected F2FS systems during the next kernel maintenance window, sooner for critical hosts using F2FS compression.
Technical view
The resolved kernel bug is in f2fs compression code. truncate() can remove a page from the mapping while prepare_compress_overwrite later expects find_lock_page() to return it, leading to a NULL result and kernel BUG during writeback. The provided sources describe stable kernel fixes, not exploit mechanics.
Likely exposure
Exposure appears limited to Linux systems using affected kernel versions with F2FS compression paths. The sources do not identify remote exposure, affected distributions, or application-layer products.
Exploitation context
The source bundle shows no KEV listing and provides no evidence of active exploitation. The report is based on a stress-test-triggered kernel panic involving overwrite and truncate racing in F2FS compression.
Researcher notes
The evidence describes a race in F2FS compressed overwrite handling fixed by avoiding references to an updated page. No CVSS, CWE, affected distribution mapping, or exploit status is provided in the bundle, so exposure assessment requires local kernel and filesystem inventory.
Mitigation direction
Apply vendor kernel updates that include the referenced stable F2FS fixes.
Check Linux distribution advisories for the fixed kernel package in your environment.
Prioritize systems that use F2FS filesystems with compression enabled.
Avoid unverified workarounds; follow vendor guidance for interim risk reduction.
Validation and detection
Inventory Linux hosts using F2FS and record kernel versions.
Check whether vendor kernels include the referenced stable commits or equivalent backports.
Review crash logs for f2fs compress.c BUG or writeback stack traces.
Confirm update status through standard patch management reporting.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2021-46982 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.