CVE-2026-72132
NFS: Charge unstable writes by request size, not folio size
Description
In the Linux kernel, the following vulnerability has been resolved: NFS: Charge unstable writes by request size, not folio size nfs_folio_mark_unstable() and nfs_folio_clear_commit() charge and uncharge NR_WRITEBACK/WB_WRITEBACK by folio_nr_pages(folio) once per *request* added to or removed from a commit list. This is correct only when a folio has a single associated request. When pg_test splits a folio into N sub-folio requests (e.g. pNFS flexfiles striping with a stripe unit smaller than the folio size, or plain wsize-limited splitting), each of the N requests independently charges the whole folio's page count, inflating the accounting by a factor of N per folio. With large folios and small stripe units this reaches multiple orders of magnitude: a 2 MiB folio split into 512 4 KiB requests can charge up to 512x its real size, pushing global dirty+writeback accounting past the system's dirty threshold and forcing every buffered writer on the host into the hard-throttle path, including unrelated in-kernel NFS server threads sharing the box. Charge each request only for the pages it actually covers.
INFO
Published Date :
Aug. 15, 2026, 6:21 a.m.
Last Modified :
Aug. 17, 2026, 6:18 a.m.
Remotely Exploit :
No
Source :
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Solution
- Update the Linux kernel to the fixed version.
- Ensure NFS write requests are properly accounted for.
- Avoid splitting folios into excessive sub-folio requests.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-72132.
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-72132 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-72132
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-72132 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-72132 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Aug. 17, 2026
Action Type Old Value New Value Changed Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '0c493b5cf16e28d761b6e77c7c32aa0e7af70813', 'lessThan': 'a442c258320b689f13d2205eaeeddf8b0e630288', 'versionType': 'git'}, {'status': 'affected', 'version': '0c493b5cf16e28d761b6e77c7c32aa0e7af70813', 'lessThan': '1f646e23372f3444dc5f0bcb5404a49d26756add', 'versionType': 'git'}, {'status': 'affected', 'version': '0c493b5cf16e28d761b6e77c7c32aa0e7af70813', 'lessThan': '0ffc032294a29601b1019dba91aa1a930d90df17', 'versionType': 'git'}, {'status': 'affected', 'version': '0c493b5cf16e28d761b6e77c7c32aa0e7af70813', 'lessThan': 'a192b6c149c6ea10cc88869accb78165eb454456', 'versionType': 'git'}, {'status': 'affected', 'version': '0c493b5cf16e28d761b6e77c7c32aa0e7af70813', 'lessThan': '27934d02cbeb8a957dd11c985a579e58d30c5270', 'versionType': 'git'}], 'programFiles': ['fs/nfs/internal.h', 'fs/nfs/pnfs_nfs.c', 'fs/nfs/write.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '6.3'}, {'status': 'unaffected', 'version': '0', 'lessThan': '6.3', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '6.6.148', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.97', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.40', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.5', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2-rc3', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['fs/nfs/internal.h', 'fs/nfs/pnfs_nfs.c', 'fs/nfs/write.c'], 'defaultStatus': 'affected'}] [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '0c493b5cf16e28d761b6e77c7c32aa0e7af70813', 'lessThan': 'a442c258320b689f13d2205eaeeddf8b0e630288', 'versionType': 'git'}, {'status': 'affected', 'version': '0c493b5cf16e28d761b6e77c7c32aa0e7af70813', 'lessThan': '1f646e23372f3444dc5f0bcb5404a49d26756add', 'versionType': 'git'}, {'status': 'affected', 'version': '0c493b5cf16e28d761b6e77c7c32aa0e7af70813', 'lessThan': '0ffc032294a29601b1019dba91aa1a930d90df17', 'versionType': 'git'}, {'status': 'affected', 'version': '0c493b5cf16e28d761b6e77c7c32aa0e7af70813', 'lessThan': 'a192b6c149c6ea10cc88869accb78165eb454456', 'versionType': 'git'}, {'status': 'affected', 'version': '0c493b5cf16e28d761b6e77c7c32aa0e7af70813', 'lessThan': '27934d02cbeb8a957dd11c985a579e58d30c5270', 'versionType': 'git'}], 'programFiles': ['fs/nfs/internal.h', 'fs/nfs/pnfs_nfs.c', 'fs/nfs/write.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '6.3'}, {'status': 'unaffected', 'version': '0', 'lessThan': '6.3', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '6.6.148', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.97', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.40', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.5', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['fs/nfs/internal.h', 'fs/nfs/pnfs_nfs.c', 'fs/nfs/write.c'], 'defaultStatus': 'affected'}] -
New CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Aug. 15, 2026
Action Type Old Value New Value Added Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '0c493b5cf16e28d761b6e77c7c32aa0e7af70813', 'lessThan': 'a442c258320b689f13d2205eaeeddf8b0e630288', 'versionType': 'git'}, {'status': 'affected', 'version': '0c493b5cf16e28d761b6e77c7c32aa0e7af70813', 'lessThan': '1f646e23372f3444dc5f0bcb5404a49d26756add', 'versionType': 'git'}, {'status': 'affected', 'version': '0c493b5cf16e28d761b6e77c7c32aa0e7af70813', 'lessThan': '0ffc032294a29601b1019dba91aa1a930d90df17', 'versionType': 'git'}, {'status': 'affected', 'version': '0c493b5cf16e28d761b6e77c7c32aa0e7af70813', 'lessThan': 'a192b6c149c6ea10cc88869accb78165eb454456', 'versionType': 'git'}, {'status': 'affected', 'version': '0c493b5cf16e28d761b6e77c7c32aa0e7af70813', 'lessThan': '27934d02cbeb8a957dd11c985a579e58d30c5270', 'versionType': 'git'}], 'programFiles': ['fs/nfs/internal.h', 'fs/nfs/pnfs_nfs.c', 'fs/nfs/write.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '6.3'}, {'status': 'unaffected', 'version': '0', 'lessThan': '6.3', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '6.6.148', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.97', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.40', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.5', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2-rc3', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['fs/nfs/internal.h', 'fs/nfs/pnfs_nfs.c', 'fs/nfs/write.c'], 'defaultStatus': 'affected'}] Added Description In the Linux kernel, the following vulnerability has been resolved: NFS: Charge unstable writes by request size, not folio size nfs_folio_mark_unstable() and nfs_folio_clear_commit() charge and uncharge NR_WRITEBACK/WB_WRITEBACK by folio_nr_pages(folio) once per *request* added to or removed from a commit list. This is correct only when a folio has a single associated request. When pg_test splits a folio into N sub-folio requests (e.g. pNFS flexfiles striping with a stripe unit smaller than the folio size, or plain wsize-limited splitting), each of the N requests independently charges the whole folio's page count, inflating the accounting by a factor of N per folio. With large folios and small stripe units this reaches multiple orders of magnitude: a 2 MiB folio split into 512 4 KiB requests can charge up to 512x its real size, pushing global dirty+writeback accounting past the system's dirty threshold and forcing every buffered writer on the host into the hard-throttle path, including unrelated in-kernel NFS server threads sharing the box. Charge each request only for the pages it actually covers. Added Reference https://git.kernel.org/stable/c/0ffc032294a29601b1019dba91aa1a930d90df17 Added Reference https://git.kernel.org/stable/c/1f646e23372f3444dc5f0bcb5404a49d26756add Added Reference https://git.kernel.org/stable/c/27934d02cbeb8a957dd11c985a579e58d30c5270 Added Reference https://git.kernel.org/stable/c/a192b6c149c6ea10cc88869accb78165eb454456 Added Reference https://git.kernel.org/stable/c/a442c258320b689f13d2205eaeeddf8b0e630288