CVE-2025-21908

NFS: fix nfs_release_folio() to not deadlock via kcompactd writeback

State
Published
Severity
5.5 Medium
Published
Apr 1, 2025
Updated
May 11, 2026
Reserved
Dec 29, 2024

Read the record on cve.org

Description

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

NFS: fix nfs_release_folio() to not deadlock via kcompactd writeback

Add PF_KCOMPACTD flag and current_is_kcompactd() helper to check for it so nfs_release_folio() can skip calling nfs_wb_folio() from kcompactd.

Otherwise NFS can deadlock waiting for kcompactd enduced writeback which recurses back to NFS (which triggers writeback to NFSD via NFS loopback mount on the same host, NFSD blocks waiting for XFS's call to __filemap_get_folio):

6070.550357] INFO: task kcompactd0:58 blocked for more than 4435 seconds.

{--- [58] "kcompactd0" [<0>] folio_wait_bit+0xe8/0x200 [<0>] folio_wait_writeback+0x2b/0x80 [<0>] nfs_wb_folio+0x80/0x1b0 [nfs] [<0>] nfs_release_folio+0x68/0x130 [nfs] [<0>] split_huge_page_to_list_to_order+0x362/0x840 [<0>] migrate_pages_batch+0x43d/0xb90 [<0>] migrate_pages_sync+0x9a/0x240 [<0>] migrate_pages+0x93c/0x9f0 [<0>] compact_zone+0x8e2/0x1030 [<0>] compact_node+0xdb/0x120 [<0>] kcompactd+0x121/0x2e0 [<0>] kthread+0xcf/0x100 [<0>] ret_from_fork+0x31/0x40 [<0>] ret_from_fork_asm+0x1a/0x30 ---}

[akpm@linux-foundation.org: fix build]

Scores

CVSSScoreVectorSource
3.15.5 MediumCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:HCISA-ADP

Weaknesses

Affected Products

ProductVersions
LinuxLinux
  • 96780ca55e3cbf4f150fd5a833a61492c9947b5b to before ab0727d6e2196682351c25c1dd112136f6991f11Affected
  • 96780ca55e3cbf4f150fd5a833a61492c9947b5b to before 5ae31c54cff745832b9bd5b32e71f3d1b607cd1eAffected
  • 96780ca55e3cbf4f150fd5a833a61492c9947b5b to before 8253ff29edcb429a9a6c75710941c6a16a9a34b1Affected
  • 96780ca55e3cbf4f150fd5a833a61492c9947b5b to before ce6d9c1c2b5cc785016faa11b48b6cd317eb367eAffected
LinuxLinux
  • 6.3Affected
  • before 6.3Not affected
  • 6.6.83 through 6.6.*Not affected
  • 6.12.19 through 6.12.*Not affected
  • 6.13.7 through 6.13.*Not affected
  • 6.14 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.