data built 2026-10-19T13:16:53Z

Look up another CVE · open CVE-2026-89612 in the interactive tracker

CVE-2026-89612

ntfs: reject invalid MFT LCNs from boot sector

9.8 EPSS 0.6% AV:N

Published 2026-09-11 (37 days ago) by the Linux kernel CNA. Subsystem fs/ntfs. Debian urgency: unimportant.

What to do, per Debian release

Debian's own status for CVE-2026-89612 in every release this site tracks, and what each one means in practice. Every status below is the one the Debian Security Team publishes for this CVE. source

ReleaseStatus VersionWhat this means
Debian 12bookwormnot affected6.1.190-1Nothing to do. bookworm never shipped the vulnerable code.
Debian 13trixienot affected6.12.113-1Nothing to do. trixie never shipped the vulnerable code.
Debian 14forkyfixed7.2.6-1Update the kernel and reboot. Fixed in 7.2.6-1. A running kernel keeps the old code until the machine restarts.
Debian unstablesidfixed7.2.6-1Update the kernel and reboot. Fixed in 7.2.6-1. A running kernel keeps the old code until the machine restarts.

The vulnerability

What the bug is

The NTFS boot sector stores the MFT and MFTMirr locations as unsigned 64-bit LCNs, but parse_ntfs_boot_sector() decoded them into an s64. A crafted high-bit value could therefore become negative and pass the existing upper-bound check. The invalid value then propagated into the MFT zone allocator and could result in an out-of-bounds access to lcn_empty_bits_per_page.

Where it lives

The fix touches these files. If the subsystem is one you do not use, the practical exposure is lower, though the package is still the vulnerable one.

fs/ntfs/super.c

What this is
NTFS FILESYSTEMMAINTAINERS section matched on fs/ntfs/ · linux-fsdevel@vger.kernel.org · Maintained
Kernel module
ntfs

Check it on the machine

grep -w CONFIG_NTFS_FS /boot/config-$(uname -r)

Reads the booted kernel's own configuration, on the machine and nowhere else. =y is built in, =m is a module, and an is not set line means the code is not there.

lsmod | grep -w ntfs

Prints a line if that module is loaded right now, and nothing if it is not. One that is not loaded can still be loaded later by anything that needs it.

Show whether Debian builds this, per release

Debian does not build this code in 1 release. It does build it in 2 releases, so the answer depends on which release the machine runs. The build rule could not be established for 1 release, so nothing is claimed about those.

  • bookwormn
  • trixie?
  • forky, sidm
n
not enabled on any flavour - this release does not build the code
?
not established - no Makefile entry for the affected file
m
a loadable module on every flavour - check lsmod, can be blacklisted

Where a release above reads "not established", no build rule for the affected file was found in that release's kernel tree. That is a gap in this lookup, not a finding that the code is absent.

Build switch
CONFIG_NTFS_FS

From the configuration Debian publishes for every kernel flavour it builds. It covers only the architectures Debian ships a linux-config package for, and nothing about a kernel you built yourself. Debian's own status above stays authoritative about the source package.MAINTAINERS kbuild Makefiles Debian linux-config packages

Signals

Published
2026-09-11 (37 days ago)source
CVSS
9.8 critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Hsource recompute it
Attack vector
network (AV:N)source
EPSS
0.55%, higher than 45.0% of all CVEssource
CISA KEV
not listedthe KEV catalogue
Debian urgency
unimportantsource
Subsystem
fs/ntfs

Upstream fixes

The versions the CNA records as introducing and fixing this, and the commit for each. source

IntroducedFixed inCommit
7.17.2.48f8420b68a6f
7.17.3cc9d09fef784

Why the CNA scored it this way

Quoted from the kernel CNA's own scoring file, word for word. A highlighted metric carries the most severe value CVSS v3.1 defines for it, which is what pushes the score up. source

AV:NAttack vector, network
After a crafted NTFS volume is mounted, fs/ntfs registers ntfs_export_ops, so nfsd/ksmbd VFS writes and creates reach ntfs_cluster_alloc() and index the poisoned MFT-zone LCN into lcn_empty_bits_per_page without local shell access.
AC:LAttack complexity, low
The attacker fully controls the unsigned 64-bit MFT/MFTMirr LCNs in the boot sector; a high-bit value becomes a negative s64, bypasses the signed upper-bound check, and later allocator walks use that value as bmp_pos with no race or rare config.
PR:NPrivileges required, none
Triggering the allocator needs only write access to a mounted NTFS export (guest/anonymous SMB or a permissive NFS export) or an unprivileged write on an already-mounted volume, not init-namespace root or CAP_SYS_ADMIN at trigger time.
UI:NUser interaction, none
After the crafted volume is mounted and exported, ordinary remote or local write/create operations invoke ntfs_cluster_alloc() with the poisoned mft_zone_pos; no extra victim mount dialog or USB insertion is required during the attack.
S:UScope, unchanged
Out-of-bounds access to vol->lcn_empty_bits_per_page corrupts kernel heap within the host OS security domain and does not cross a VM, container, or IOMMU boundary to another authority.
C:HConfidentiality impact, high
ntfs_cluster_alloc() reads lcn_empty_bits_per_page[index] where index is derived from the attacker-chosen negative LCN (truncating to a controllable pgoff_t on 32-bit), an unbounded kernel heap out-of-bounds read that can disclose adjacent objects.
I:HIntegrity impact, high
The same attacker-influenced index is passed to ntfs_set_lcn_empty_bits(), which increments or decrements lcn_empty_bits_per_page[index], a kernel heap out-of-bounds write exploitable for arbitrary write and control-flow hijacking.
A:HAvailability impact, high
The out-of-bounds lcn_empty_bits_per_page index causes a kernel oops or KASAN slab-out-of-bounds fault in ntfs_cluster_alloc()/ntfs_set_lcn_empty_bits(), crashing or hanging the host even when not fully exploited.