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

fs/ntfs3: fix deadlock in ni_read_folio_cmpr

Syzbot reported a task hung in ni_readpage_cmpr (now ni_read_folio_cmpr).
This is caused by a lock inversion deadlock involving the inode mutex
(ni_lock) and page locks.

Scenario:
1. Task A enters ntfs_read_folio() for page X. It acquires ni_lock.
2. Task A calls ni_read_folio_cmpr(), which attempts to lock all pages in
the compressed frame (including page Y).
3. Concurrently, Task B (e.g., via readahead) has locked page Y and
calls ntfs_read_folio().
4. Task B waits for ni_lock (held by A).
5. Task A waits for page Y lock (held by B).
-> DEADLOCK.

The fix is to restructure locking: do not take ni_lock in ntfs_read_folio().
Instead, acquire ni_lock inside ni_read_folio_cmpr() ONLY AFTER all required
page locks for the frame have been successfully acquired. This restores the
correct lock ordering (Page Lock -> ni_lock) consistent with VFS.

[almaz.alexandrovich@paragon-software.com: ni_readpage_cmpr was renamed to ni_read_folio_cmpr]
Published: 2026-05-27
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A lock inversion deadlock in the Linux kernel’s NTFS‑3.0 module occurs when ntfs_read_folio() holds the inode mutex (ni_lock) while another task holds a page lock needed for the same read. The inverted lock order allows two concurrently executing reads to block each other, causing a hung kernel thread and system unresponsiveness. The flaw is identified by CWE‑667 (Race Condition) and CWE‑833 (Incorrect Block Ordering).

Affected Systems

All Linux kernel releases containing the ntfs3 driver before the commits cfe246b3181 and e37a75bb866c are vulnerable, as the problem exists in the ntfs_read_folio and ni_read_folio_cmpr code paths. The exact kernel version ranges are not listed, so any kernel that has not yet incorporated this patch may be affected.

Risk and Exploitability

The CVSS score of 5.5 reflects a moderate impact, but exploitation requires local access to a system with an NTFS‑3.0 mount that can trigger concurrent read activity – for example, background indexing or readahead. In this scenario an adversary could repeatedly provoke the deadlock, resulting in a denial‑of‑service condition. The EPSS score of less than 1% indicates a very low probability of exploitation in the wild, and the vulnerability is not in the CISA KEV catalog. Nevertheless, the potential for kernel hangs means that environments with intensive NTFS usage merit prompt mitigation.

Generated by OpenCVE AI on August 12, 2026 at 01:46 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the kernel to a version that includes the ntfs3 deadlock fix (commits cfe246b3181 and e37a75bb866c).
  • If a kernel upgrade is not immediately possible, disable or reduce readahead on NTFS partitions to limit concurrent read activity.
  • Consider replacing NTFS‑3.0 mounts with a native Linux file system (e.g., ext4, xfs) until a patched kernel is available.

Generated by OpenCVE AI on August 12, 2026 at 01:46 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 29 May 2026 00:15:00 +0000


Wed, 27 May 2026 14:15:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: fs/ntfs3: fix deadlock in ni_read_folio_cmpr Syzbot reported a task hung in ni_readpage_cmpr (now ni_read_folio_cmpr). This is caused by a lock inversion deadlock involving the inode mutex (ni_lock) and page locks. Scenario: 1. Task A enters ntfs_read_folio() for page X. It acquires ni_lock. 2. Task A calls ni_read_folio_cmpr(), which attempts to lock all pages in the compressed frame (including page Y). 3. Concurrently, Task B (e.g., via readahead) has locked page Y and calls ntfs_read_folio(). 4. Task B waits for ni_lock (held by A). 5. Task A waits for page Y lock (held by B). -> DEADLOCK. The fix is to restructure locking: do not take ni_lock in ntfs_read_folio(). Instead, acquire ni_lock inside ni_read_folio_cmpr() ONLY AFTER all required page locks for the frame have been successfully acquired. This restores the correct lock ordering (Page Lock -> ni_lock) consistent with VFS. [almaz.alexandrovich@paragon-software.com: ni_readpage_cmpr was renamed to ni_read_folio_cmpr]
Title fs/ntfs3: fix deadlock in ni_read_folio_cmpr
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-05-27T12:15:03.360Z

Reserved: 2026-05-08T13:14:33.088Z

Link: CVE-2025-71309

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Analyzed

Published: 2026-05-27T14:16:43.517

Modified: 2026-06-25T21:04:08.010

Link: CVE-2025-71309

cve-icon Redhat

Severity :

Publid Date: 2026-05-27T00:00:00Z

Links: CVE-2025-71309 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-12T02:00:05Z

Weaknesses