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

ntfs: free volume-wide resources on fill_super failure

ntfs_fill_super()'s err_out_now path frees only the volume struct via
kfree(vol), leaving several vol-owned allocations behind on every mount
failure:

- vol->nls_map, loaded by ntfs_init_fs_context() via
load_nls_default() (or replaced by an explicit nls= option in
ntfs_parse_param()), is never unload_nls()'d.

- vol->volume_label, allocated by load_system_files() through
ntfs_ucstonls() once the $Volume name attribute has been parsed, is
not released by load_system_files()'s own error labels nor by the
fill_super() inline cleanup that only runs on d_make_root()
failure. Any later failure inside load_system_files() leaks it.

- vol->lcn_empty_bits_per_page was kvfree()'d in
unl_upcase_iput_tmp_ino_err_out_now without clearing the pointer,
so it could not be folded into a single common cleanup.

Because the failure paths never call ntfs_volume_free() and never reach
the d_make_root() inline cleanup block (it sits above the label and is
jumped over by the load_system_files() / kvmalloc failure gotos), these
resources accumulate per failed mount attempt with no chance of
recovery short of unloading the module. This is a silent leak: the
inodes loaded prior to failure remain hashed but generic_shutdown_super()
skips evict_inodes() when sb->s_root is unset, so no CHECK_DATA_CORRUPTION
warning is emitted either.

Move the per-volume frees down to err_out_now and drop the
lcn_empty_bits_per_page kvfree() from the upper label so the cleanup is
performed exactly once on every failure path. Using unconditional
kvfree() / kfree() / unload_nls() is safe because they all accept NULL
and the upper labels that previously freed nls_map (the d_make_root()
inline cleanup) already clear the pointer.
Published: 2026-08-15
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability arises from a silent memory leak in the Linux kernel’s NTFS driver. When ntfs_fill_super encounters a failure path, it frees only the main volume structure while leaving several vol‐owned allocations—such as the NLS map, volume label, and page bits—intact. Over repeated mount failures these orphaned resources accumulate, potentially exhausting system memory and causing a denial of service. The leak is silent; no error is reported and inodes loaded before failure remain hashed, so the issue is not immediately visible to users.

Affected Systems

The flaw exists in all Linux kernel releases that employ the legacy NTFS implementation before the patch commits identified in the kernel git tree. The fix restores proper cleanup on every error path and is incorporated into subsequent stable kernel releases. Systems running unsupported or older kernels without this patch are susceptible.

Risk and Exploitability

The CVSS score is 5.5 and the EPSS score is <1%, making a quantitative risk assessment possible; however, the vulnerability is not listed in CISA’s KEV catalog, suggesting no known active exploitation. It is inferred that an attacker who can trigger repeated NTFS mount failures—such as a user capable of mounting malicious or malformed NTFS volumes—could cause the memory leak to grow until system resources are exhausted, potentially leading to a denial of service. The attack surface requires the ability to mount NTFS filesystems, which is typically limited to users with appropriate privileges or the root user.

Generated by OpenCVE AI on August 22, 2026 at 10:39 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the kernel patch from commit a9523a7d3b24b3a6b25ec1eb668ee6618cacf05e that restores proper cleanup of NTFS resources on mount failure.
  • Upgrade to a Linux kernel release that includes this fix, such as the latest stable kernel available from your distribution.
  • If NTFS filesystems are not required, disable or remove the ntfs kernel module to eliminate the attack surface.
  • Monitor system memory usage after NTFS mount operations and review logs for repeated mount failures to detect lingering or new instances of the issue.

Generated by OpenCVE AI on August 22, 2026 at 10:39 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 22 Aug 2026 09:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-401

Wed, 19 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-772
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Sat, 15 Aug 2026 20:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-401

Sat, 15 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ntfs: free volume-wide resources on fill_super failure ntfs_fill_super()'s err_out_now path frees only the volume struct via kfree(vol), leaving several vol-owned allocations behind on every mount failure: - vol->nls_map, loaded by ntfs_init_fs_context() via load_nls_default() (or replaced by an explicit nls= option in ntfs_parse_param()), is never unload_nls()'d. - vol->volume_label, allocated by load_system_files() through ntfs_ucstonls() once the $Volume name attribute has been parsed, is not released by load_system_files()'s own error labels nor by the fill_super() inline cleanup that only runs on d_make_root() failure. Any later failure inside load_system_files() leaks it. - vol->lcn_empty_bits_per_page was kvfree()'d in unl_upcase_iput_tmp_ino_err_out_now without clearing the pointer, so it could not be folded into a single common cleanup. Because the failure paths never call ntfs_volume_free() and never reach the d_make_root() inline cleanup block (it sits above the label and is jumped over by the load_system_files() / kvmalloc failure gotos), these resources accumulate per failed mount attempt with no chance of recovery short of unloading the module. This is a silent leak: the inodes loaded prior to failure remain hashed but generic_shutdown_super() skips evict_inodes() when sb->s_root is unset, so no CHECK_DATA_CORRUPTION warning is emitted either. Move the per-volume frees down to err_out_now and drop the lcn_empty_bits_per_page kvfree() from the upper label so the cleanup is performed exactly once on every failure path. Using unconditional kvfree() / kfree() / unload_nls() is safe because they all accept NULL and the upper labels that previously freed nls_map (the d_make_root() inline cleanup) already clear the pointer.
Title ntfs: free volume-wide resources on fill_super failure
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-18T06:56:24.809Z

Reserved: 2026-08-09T03:40:39.912Z

Link: CVE-2026-72205

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T06:21:39.190

Modified: 2026-08-18T07:16:53.877

Link: CVE-2026-72205

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-72205 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-22T10:45:03Z

Weaknesses
  • CWE-772

    Missing Release of Resource after Effective Lifetime