Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain local access with mount capability
-
ExploitSupply crafted NTFS image with zero/non-power-of-two sectors_per_cluster
-
ExecutionBoot-sector check fails to reject value, reaches ffs()-1 shift
-
ImpactKernel shift-out-of-bounds, panic / denial of service
Vulnerability Assessment
| Exploitation Conditions | Requires the ability to mount an attacker-controlled NTFS filesystem image using the Linux kernel's legacy ntfs (read-only classic) driver; the crafted boot sector must set sectors_per_cluster to 0 or another non-power-of-two value so that is_boot_sector_ntfs()'s range check passes and parse_ntfs_boot_sector() computes ffs(value)-1. Limiting factors: exploitation is local only (AV:L), needs mount privilege or an auto-mount-of-removable-media configuration (PR:L), requires the legacy CONFIG_NTFS_FS driver to be built and in use rather than the modern ntfs3 driver, and yields only a kernel crash (no code execution or data disclosure). No remote or network path exists. |
| Impact | This is a genuine but low-priority local denial-of-service bug, not a high-impact remote threat. The CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H) and base score of 5.5 are internally consistent with the description: exploitation is local, requires some privilege (the ability to mount a filesystem), and yields only an availability impact (kernel crash via UBSAN shift-out-of-bounds in fs/ntfs/super.c), with no confidentiality or integrity loss. The EPSS score of 0.14% (3rd percentile) confirms very low expected exploitation activity, which aligns with the local-only attack surface. There is no CISA KEV listing (not actively exploited) and no public exploit code referenced - only upstream git commits and the NVD advisory. All signals therefore agree: real but minor. One caveat: the tag labels this a 'Buffer Overflow,' but the description and UBSAN trace describe a shift-exponent (undefined behavior) bug, not a memory-corruption overflow - the tag appears mislabeled and should not be read as implying code execution. A further nuance is PR: auto-mounting of removable media (e.g., a crafted USB NTFS image) could lower the effective privilege barrier in some desktop configurations, so PR:L is a reasonable default but worth verifying against the target's mount policy. |
| Exploit ScenarioDerived | A local attacker (or someone with physical access supplying removable media) crafts an NTFS filesystem image whose boot sector sets sectors_per_cluster to zero or another non-power-of-two value. When the victim system mounts this image using the legacy ntfs driver, ffs(0)-1 produces a huge shift exponent and the kernel hits an undefined shift (UBSAN shift-out-of-bounds), crashing or destabilizing the system. No public exploit code was identified at time of analysis; triggering the bug is trivial given mount access but produces only denial of service. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
A local denial-of-service condition in the Linux kernel's legacy NTFS driver allows a user able to mount a crafted NTFS filesystem image to crash the kernel by supplying a boot sector with sectors_per_cluster set to 0 or another non-power-of-two value. The flaw is reached through parse_ntfs_boot_sector(), which computes ffs(sectors_per_cluster) - 1 and then performs an out-of-bounds shift (shift exponent 4294967295), tripping a UBSAN shift-out-of-bounds report in fs/ntfs/super.c; only kernel availability is impacted, with no code execution or data disclosure (CVSS 5.5, AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H). Vendor patches are available (fixed in Linux 7.2.7 and 7.3-rc2 via commits 7524c3145a3bac92bebbc47a29c007f1d874c9b3 and 323751a604e7533fa473874d999371592a614207), and there is no public exploit identified at time of analysis; EPSS is 0.14% (3rd percentile), consistent with a low-priority local bug.
RemediationAI
Apply the vendor-released patch by upgrading to Linux 7.2.7 or 7.3-rc2 (or any later stable/mainline release containing commit 7524c3145a3bac92bebbc47a29c007f1d874c9b3 or 323751a604e7533fa473874d999371592a614207, available from the kernel stable tree). If immediate upgrading is not possible, migrate NTFS handling to the modern ntfs3 driver (mount with the ntfs3 filesystem type) rather than the legacy CONFIG_NTFS_FS driver, since the flawed validation path exists only in the legacy code; the trade-off is behavioral differences in older NTFS feature support. As a compensating control, restrict mount privileges to trusted administrators and disable automatic mounting of removable media (e.g., via udisks/udev auto-mount rules), which removes the untrusted-image ingestion vector at the cost of reduced end-user convenience for USB storage. Keep systems current on kernel updates and monitor the CVE-2026-98135 advisory for any revised guidance; note that this issue only causes a kernel crash and does not require urgent remediation beyond normal patch cadence.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The affected code is the legacy, read-only 'ntfs' driver (CONFIG_NTFS_FS), distinct from the newer ntfs3 driver. During NTFS volume recognition, is_boot_sector_ntfs() validates the boot sector's sectors_per_cluster byte using a range test that excludes 0x81 through 0xf3 but, critically, accepts 0 and other non-power-of-two values. When such a value is accepted, parse_ntfs_boot_sector() computes sectors_per_cluster_bits = ffs(sectors_per_cluster) - 1 and then shifts vol->sector_size left by that amount to derive vol->cluster_size. Because ffs(0) returns 0, the expression yields (unsigned)-1, and the subsequent shift becomes an out-of-bounds undefined-behavior operation (exponent 4294967295 too large for a 32-bit int), as reported by UBSAN at fs/ntfs/super.c:673. The root cause is a class of improper input validation combined with integer/bit-manipulation error: the range check does not enforce the power-of-two precondition required by the ffs()-based shift arithmetic. CPE data (cpe:2.3:a:linux:linux) confirms the Linux kernel itself is the affected component.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Local-only trigger requiring privilege to mount a crafted filesystem (AV:L, PR:L), reliably reproducible (AC:L), causing a kernel crash with availability-only impact (C:N/I:N/A:H).
Primary rating from NVD.
CVSS VectorNVD
Lifecycle Timeline
4DescriptionNVD
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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
EUVD-2026-86966
GHSA-vhjh-88x6-7w6p
NVD
CVE.org
EPSS
Exploit-DB