CVE-2026-31716

fs/ntfs3: validate rec->used in journal-replay file record check

High · published May 1, 2026

CVSS v3.1
7.8
EPSS
0%
Percentile
7.8
In the wild
Unconfirmed
What it is

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

fs/ntfs3: validate rec->used in journal-replay file record check

check_file_record() validates rec->total against the record size but

never validates rec->used. The do_action() journal-replay handlers read

rec->used from disk and use it to compute memmove lengths:

DeleteAttribute: memmove(attr, ..., used - asize - roff)

CreateAttribute: memmove(..., attr, used - roff)

change_attr_size: memmove(..., used - PtrOffset(rec, next))

When rec->used is smaller than the offset of a validated attribute, or

larger than the record size, these subtractions can underflow allowing

us to copy huge amounts of memory in to a 4kb buffer, generally

considered a bad idea overall.

This requires a corrupted filesystem, which isn't a threat model the

kernel really needs to worry about, but checking for such an obvious

out-of-bounds value is good to keep things robust, especially on journal

replay

Fix this up by bounding rec->used correctly.

This is much like commit b2bc7c44ed17 ("fs/ntfs3: Fix slab-out-of-bounds

read in DeleteIndexEntryRoot") which checked different values in this

same switch statement.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00186 · 7.8th percentile
Published
2026-05-01T13:56Z
EPSS history
Timeline
  • 01 MAY 13:56Z
    fs/ntfs3: validate rec->used in journal-replay file record check
    cvelistv5