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

ntfs: reject invalid sectors_per_cluster in the boot sector

is_boot_sector_ntfs() checks the boot sector's sectors_per_cluster field
with a range test that rejects 0x81..0xf3 but accepts 0 and other
non-power-of-two counts. A zero value reaches parse_ntfs_boot_sector():

sectors_per_cluster_bits = ffs(sectors_per_cluster) - 1;
...
vol->cluster_size = vol->sector_size << sectors_per_cluster_bits;

ffs(0) is 0, so sectors_per_cluster_bits becomes (unsigned)-1 and the
shift is undefined:

UBSAN: shift-out-of-bounds in fs/ntfs/super.c:673:39
shift exponent 4294967295 is too large for 32-bit type 'int'

This change rejects any non-power-of-two value, since it feeds the
aforementioned shift via ffs() - 1, which only yields the correct shift for a
power of two.
Published: 2026-09-25
Score: n/a
EPSS: n/a
KEV: No
Impact: Remote Code Execution
Action: Immediate Patch
AI Analysis

Impact

The Linux kernel’s NTFS driver parses the boot sector of NTFS volumes and uses the sectors_per_cluster field to compute the size of a cluster. The old implementation performed a narrow range test that incorrectly accepted a zero value. When sectors_per_cluster is zero, the ffs(0) call returns 0, causing the calculated bit shift to overflow and become a very large, undefined value. This shift out-of-bounds can corrupt memory or crash the kernel, opening the door for an attacker to execute arbitrary code with kernel privileges. The vulnerability therefore has the potential to allow remote code execution once an attacker mounts a malicious NTFS volume or otherwise triggers the parsing of a malformed boot sector.

Affected Systems

The affected product is the Linux kernel. Specific kernel versions are not listed in the provided data, but the vulnerability notes that it resides in support. Systems running the unpatched kernel are susceptible when an NTFS volume with an invalid sectors_per_cluster field is processed.

Risk and Exploitability

No EPSS score is available and the vulnerability is not listed in the CISA KEV catalog. The CVSS score is not provided, but the bug occurs in kernel space and allows potential arbitrary code execution, indicating a high severity. An attacker would need to provide a crafted NTFS volume—this typically requires local access or the ability to mount a volume via an untrusted process. Once the malformed boot sector is parsed, the under‑flowing shift can lead to a kernel crash or privilege escalation. The lack of publicly available fix guidance in the advisory suggests that exploitation risk is significant for exposed systems but remains contingent on the attacker’s ability to influence volume parsing.

Generated by OpenCVE AI on September 25, 2026 at 12:22 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest Linux kernel update or patch that rejects zero and non‑power‑of‑two sector counts in the NTFS boot sector
  • Verify that all NTFS volumes in use have a valid sectors_per_cluster value and remove any volumes that appear malformed
  • If a kernel update is delayed, consider disabling NTFS support in the kernel (removing the ntfs module) until the fix is applied
  • For environments that still require NTFS access, compile the kernel with the patch included to enforce proper bounds checking

Generated by OpenCVE AI on September 25, 2026 at 12:22 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 25 Sep 2026 12:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-680
CWE-788

Fri, 25 Sep 2026 10:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ntfs: reject invalid sectors_per_cluster in the boot sector is_boot_sector_ntfs() checks the boot sector's sectors_per_cluster field with a range test that rejects 0x81..0xf3 but accepts 0 and other non-power-of-two counts. A zero value reaches parse_ntfs_boot_sector(): sectors_per_cluster_bits = ffs(sectors_per_cluster) - 1; ... vol->cluster_size = vol->sector_size << sectors_per_cluster_bits; ffs(0) is 0, so sectors_per_cluster_bits becomes (unsigned)-1 and the shift is undefined: UBSAN: shift-out-of-bounds in fs/ntfs/super.c:673:39 shift exponent 4294967295 is too large for 32-bit type 'int' This change rejects any non-power-of-two value, since it feeds the aforementioned shift via ffs() - 1, which only yields the correct shift for a power of two.
Title ntfs: reject invalid sectors_per_cluster in the boot sector
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-09-25T10:36:13.510Z

Reserved: 2026-09-25T10:25:14.319Z

Link: CVE-2026-98135

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:44.933

Modified: 2026-09-25T11:17:44.933

Link: CVE-2026-98135

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-25T13:30:18Z

Weaknesses
  • CWE-680

    Integer Overflow to Buffer Overflow

  • CWE-788

    Access of Memory Location After End of Buffer