---
id: "CVE-2026-99242"
kind: "vulnerability"
aliases: ["CVE-2026-99242"]
title: "Linux kernel NTFS: fallocate race can expose stale disk data via mmap"
severity: "low"
cvss: null
epss: null
exploited: false
status: "open"
category: "runtime"
products: []
ecosystems: []
tags: ["linux-kernel", "ntfs", "runtime", "self-hosted"]
not_affected_if: ["no-ntfs-mounts", "trusted-users-only"]
published_at: "2026-11-02T16:17:50+00:00"
first_seen_at: "2026-11-02T16:24:06+00:00"
updated_at: "2026-11-02T16:26:49+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-99242", "first_seen_at": "2026-11-02T16:24:06+00:00"}]
---

# Linux kernel NTFS: fallocate race can expose stale disk data via mmap

In the Linux kernel's NTFS driver, fallocate allocates clusters before zeroing them, and a concurrent mmap page fault in that window can read old disk contents. An attacker who can use a mounted NTFS volume with mmap access could read leftover data from previously freed disk blocks.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check whether the kernel has NTFS support loaded or in use: `lsmod | grep ntfs`
- Check the running kernel version: `uname -r` and compare against the fixed release in the kernel stable branch

## Timeline

- 2026-11-02T16:24:06+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-99242

## From the sources

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

ntfs: fix race between fallocate and mmap reads

The fallocate implementation only takes invalidate_lock for punch hole,
collapse range, and insert range operations. For standard allocation modes
(mode == 0, FALLOC_FL_KEEP_SIZE), the lock is not held.

During ntfs_attr_fallocate(), new clusters are mapped to the runlist via
ntfs_attr_map_cluster() before being zeroed by ntfs_dio_zero_range(). This
creates a window where concurrent mmap page faults can read uninitialized
disk data.

Since mmap uses filemap_fault() which takes invalidate_lock in shared mode,
it can fault in pages during this window and expose old disk contents to
userspace. This is an information leak and data integrity issue.

Fix by taking invalidate_lock for all fallocate operations, not just for
punch/collapse/insert modes. This prevents concurrent page faults from
accessing unzeroed clusters during the allocation window.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
