CVE-2026-72196
fs/ntfs3: bound copy_lcns dp->page_lcns[] index in analysis pass
Description
In the Linux kernel, the following vulnerability has been resolved: fs/ntfs3: bound copy_lcns dp->page_lcns[] index in analysis pass In log_replay()'s analysis pass, after find_dp() returns a valid DIR_PAGE_ENTRY for the (target_attr, target_vcn) tuple, the copy_lcns block walks lrh->lcns_follow further entries: t16 = le16_to_cpu(lrh->lcns_follow); for (i = 0; i < t16; i++) { size_t j = (size_t)(le64_to_cpu(lrh->target_vcn) - le64_to_cpu(dp->vcn)); dp->page_lcns[j + i] = lrh->page_lcns[i]; } find_dp() only validates that target_vcn falls within [dp->vcn, dp->vcn + dp->lcns_follow), i.e., that the FIRST cluster is covered. The walk through the further entries is not bounded against dp->lcns_follow. For a malformed LRH where target_vcn = dp->vcn + dp->lcns_follow - 1 and lrh->lcns_follow > 1, the i > 0 writes overflow the dp's allocated page_lcns[] array. Add the missing j + lrh->lcns_follow <= dp->lcns_follow guard. Reproduced under UML+KASAN on mainline 8d90b09e6741 as a slab-out-of-bounds write of size 8 from log_replay+0x68d4 on the mount path. This is distinct from Pavitra Jha's 2026-05-02 patch ("fs/ntfs3: validate lcns_follow in log_replay conversion", <[email protected]>) which addresses the separate version-0 dirty-page-table conversion path's memmove(&dp->vcn, ...) call. The two fixes are complementary; both should land. [[email protected]: clang-formatted the changes, fixed conflicts]
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
CVSS Scores
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS 3.1 | HIGH | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
Solution
- Update the Linux kernel with the provided patch.
- Ensure the patch addresses the specific overflow in log_replay.
- Rebuild and deploy the patched kernel.
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-72196.
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-72196 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-72196
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-72196 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-72196 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 Added CVSS V3.1 AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H Changed Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': 'b46acd6a6a627d876898e1c84d3f84902264b445', 'lessThan': '9b3d8cc9d54fcded4de51b2b1026ae7182512077', 'versionType': 'git'}, {'status': 'affected', 'version': 'b46acd6a6a627d876898e1c84d3f84902264b445', 'lessThan': '9b7c28d8c61bdb041936222a09a708531a1c2921', 'versionType': 'git'}, {'status': 'affected', 'version': 'b46acd6a6a627d876898e1c84d3f84902264b445', 'lessThan': '0f13e823bf86bd1800168ea0bb5bca8b8500a81c', 'versionType': 'git'}, {'status': 'affected', 'version': 'b46acd6a6a627d876898e1c84d3f84902264b445', 'lessThan': 'd240cd98f5f7b65c90f6b2b6abe3232ccdc405ab', 'versionType': 'git'}, {'status': 'affected', 'version': 'b46acd6a6a627d876898e1c84d3f84902264b445', 'lessThan': '49c86dae0c0ccb8d98ddcdc46987259389c816dd', 'versionType': 'git'}, {'status': 'affected', 'version': 'b46acd6a6a627d876898e1c84d3f84902264b445', 'lessThan': '5e7b598660cfa8e5af172cf4c65cffc126333307', 'versionType': 'git'}], 'programFiles': ['fs/ntfs3/fslog.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '5.15'}, {'status': 'unaffected', 'version': '0', 'lessThan': '5.15', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '6.1.178', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.145', '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-rc1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['fs/ntfs3/fslog.c'], 'defaultStatus': 'affected'}] [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': 'b46acd6a6a627d876898e1c84d3f84902264b445', 'lessThan': '9b3d8cc9d54fcded4de51b2b1026ae7182512077', 'versionType': 'git'}, {'status': 'affected', 'version': 'b46acd6a6a627d876898e1c84d3f84902264b445', 'lessThan': '9b7c28d8c61bdb041936222a09a708531a1c2921', 'versionType': 'git'}, {'status': 'affected', 'version': 'b46acd6a6a627d876898e1c84d3f84902264b445', 'lessThan': '0f13e823bf86bd1800168ea0bb5bca8b8500a81c', 'versionType': 'git'}, {'status': 'affected', 'version': 'b46acd6a6a627d876898e1c84d3f84902264b445', 'lessThan': 'd240cd98f5f7b65c90f6b2b6abe3232ccdc405ab', 'versionType': 'git'}, {'status': 'affected', 'version': 'b46acd6a6a627d876898e1c84d3f84902264b445', 'lessThan': '49c86dae0c0ccb8d98ddcdc46987259389c816dd', 'versionType': 'git'}, {'status': 'affected', 'version': 'b46acd6a6a627d876898e1c84d3f84902264b445', 'lessThan': '5e7b598660cfa8e5af172cf4c65cffc126333307', 'versionType': 'git'}], 'programFiles': ['fs/ntfs3/fslog.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '5.15'}, {'status': 'unaffected', 'version': '0', 'lessThan': '5.15', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '6.1.178', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.145', '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/ntfs3/fslog.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': 'b46acd6a6a627d876898e1c84d3f84902264b445', 'lessThan': '9b3d8cc9d54fcded4de51b2b1026ae7182512077', 'versionType': 'git'}, {'status': 'affected', 'version': 'b46acd6a6a627d876898e1c84d3f84902264b445', 'lessThan': '9b7c28d8c61bdb041936222a09a708531a1c2921', 'versionType': 'git'}, {'status': 'affected', 'version': 'b46acd6a6a627d876898e1c84d3f84902264b445', 'lessThan': '0f13e823bf86bd1800168ea0bb5bca8b8500a81c', 'versionType': 'git'}, {'status': 'affected', 'version': 'b46acd6a6a627d876898e1c84d3f84902264b445', 'lessThan': 'd240cd98f5f7b65c90f6b2b6abe3232ccdc405ab', 'versionType': 'git'}, {'status': 'affected', 'version': 'b46acd6a6a627d876898e1c84d3f84902264b445', 'lessThan': '49c86dae0c0ccb8d98ddcdc46987259389c816dd', 'versionType': 'git'}, {'status': 'affected', 'version': 'b46acd6a6a627d876898e1c84d3f84902264b445', 'lessThan': '5e7b598660cfa8e5af172cf4c65cffc126333307', 'versionType': 'git'}], 'programFiles': ['fs/ntfs3/fslog.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '5.15'}, {'status': 'unaffected', 'version': '0', 'lessThan': '5.15', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '6.1.178', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.145', '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-rc1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['fs/ntfs3/fslog.c'], 'defaultStatus': 'affected'}] Added Description In the Linux kernel, the following vulnerability has been resolved: fs/ntfs3: bound copy_lcns dp->page_lcns[] index in analysis pass In log_replay()'s analysis pass, after find_dp() returns a valid DIR_PAGE_ENTRY for the (target_attr, target_vcn) tuple, the copy_lcns block walks lrh->lcns_follow further entries: t16 = le16_to_cpu(lrh->lcns_follow); for (i = 0; i < t16; i++) { size_t j = (size_t)(le64_to_cpu(lrh->target_vcn) - le64_to_cpu(dp->vcn)); dp->page_lcns[j + i] = lrh->page_lcns[i]; } find_dp() only validates that target_vcn falls within [dp->vcn, dp->vcn + dp->lcns_follow), i.e., that the FIRST cluster is covered. The walk through the further entries is not bounded against dp->lcns_follow. For a malformed LRH where target_vcn = dp->vcn + dp->lcns_follow - 1 and lrh->lcns_follow > 1, the i > 0 writes overflow the dp's allocated page_lcns[] array. Add the missing j + lrh->lcns_follow <= dp->lcns_follow guard. Reproduced under UML+KASAN on mainline 8d90b09e6741 as a slab-out-of-bounds write of size 8 from log_replay+0x68d4 on the mount path. This is distinct from Pavitra Jha's 2026-05-02 patch ("fs/ntfs3: validate lcns_follow in log_replay conversion", <[email protected]>) which addresses the separate version-0 dirty-page-table conversion path's memmove(&dp->vcn, ...) call. The two fixes are complementary; both should land. [[email protected]: clang-formatted the changes, fixed conflicts] Added Reference https://git.kernel.org/stable/c/0f13e823bf86bd1800168ea0bb5bca8b8500a81c Added Reference https://git.kernel.org/stable/c/49c86dae0c0ccb8d98ddcdc46987259389c816dd Added Reference https://git.kernel.org/stable/c/5e7b598660cfa8e5af172cf4c65cffc126333307 Added Reference https://git.kernel.org/stable/c/9b3d8cc9d54fcded4de51b2b1026ae7182512077 Added Reference https://git.kernel.org/stable/c/9b7c28d8c61bdb041936222a09a708531a1c2921 Added Reference https://git.kernel.org/stable/c/d240cd98f5f7b65c90f6b2b6abe3232ccdc405ab