CVE-2025-71265

fs: ntfs3: fix infinite loop in attr_load_runs_range on inconsistent metadata

State
Published
Severity
Not scored
Published
Mar 18, 2026
Updated
Oct 15, 2026
Reserved
Mar 17, 2026

Read the record on cve.org

Description

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

fs: ntfs3: fix infinite loop in attr_load_runs_range on inconsistent metadata

We found an infinite loop bug in the ntfs3 file system that can lead to a Denial-of-Service (DoS) condition.

A malformed NTFS image can cause an infinite loop when an attribute header indicates an empty run list, while directory entries reference it as containing actual data. In NTFS, setting evcn=-1 with svcn=0 is a valid way to represent an empty run list, and run_unpack() correctly handles this by checking if evcn + 1 equals svcn and returning early without parsing any run data. However, this creates a problem when there is metadata inconsistency, where the attribute header claims to be empty (evcn=-1) but the caller expects to read actual data. When run_unpack() immediately returns success upon seeing this condition, it leaves the runs_tree uninitialized with run->runs as a NULL. The calling function attr_load_runs_range() assumes that a successful return means that the runs were loaded and sets clen to 0, expecting the next run_lookup_entry() call to succeed. Because runs_tree remains uninitialized, run_lookup_entry() continues to fail, and the loop increments vcn by zero (vcn += 0), leading to an infinite loop.

This patch adds a retry counter to detect when run_lookup_entry() fails consecutively after attr_load_runs_vcn(). If the run is still not found on the second attempt, it indicates corrupted metadata and returns -EINVAL, preventing the Denial-of-Service (DoS) vulnerability.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • be71b5cba2e6485e8959da7a9f9a44461a1bb074 to before 6f07a590616ff5f57f7c041d98e463fad9e9f763Affected
  • be71b5cba2e6485e8959da7a9f9a44461a1bb074 to before a89bc96d5abd8a4a8d5d911884ea347efcdf460bAffected
  • be71b5cba2e6485e8959da7a9f9a44461a1bb074 to before af839013c70a24779f9d1afb1575952009312d38Affected
  • be71b5cba2e6485e8959da7a9f9a44461a1bb074 to before 78b61f7eac37a63284774b147f38dd0be6cad43cAffected
  • be71b5cba2e6485e8959da7a9f9a44461a1bb074 to before c0b43c45d45f59e7faad48675a50231a210c379bAffected
  • be71b5cba2e6485e8959da7a9f9a44461a1bb074 to before 3c3a6e951b9b53dab2ac460a655313cf04c4a10aAffected
  • be71b5cba2e6485e8959da7a9f9a44461a1bb074 to before 4b90f16e4bb5607fb35e7802eb67874038da4640Affected
LinuxLinux
  • 5.15Affected
  • before 5.15Not affected
  • 5.15.202 through 5.15.*Not affected
  • 6.1.165 through 6.1.*Not affected
  • 6.6.128 through 6.6.*Not affected
  • 6.12.75 through 6.12.*Not affected
  • 6.18.16 through 6.18.*Not affected
  • 6.19.6 through 6.19.*Not affected
  • 7.0 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.