Skip to content
CVE PROGRAM SOURCE RECORD7.8 High

CVE-2026-31716

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

Description

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.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • b46acd6a6a627d876898e1c84d3f84902264b445 to < 8e64d33198b5a0fb14a452708bad844f94f03b2caffected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to < 1393a467a9607e62123806de7d4c3a3e54e396a9affected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to < f90b8a1798b750755a9e9aee66678f0a1820bbafaffected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to < 4b1613d7e2deda831a97e427d1ea586e50fe1be5affected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to < 0112e6279420d4005b3d57af36fb45c01b8d0116affected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to < f79d0403ea20a81bc29105bba54fbcab54e8c403affected
  • b46acd6a6a627d876898e1c84d3f84902264b445 to < 0ca0485e4b2e837ebb6cbd4f2451aba665a03e4baffected

Linux Linux

Default version status: affected

  • 5.15affected
  • 0 to < 5.15unaffected
  • 5.15.209 to ≤ 5.15.*unaffected
  • 6.1.175 to ≤ 6.1.*unaffected
  • 6.6.136 to ≤ 6.6.*unaffected
  • 6.12.84 to ≤ 6.12.*unaffected
  • 6.18.25 to ≤ 6.18.*unaffected
  • 7.0.2 to ≤ 7.0.*unaffected
  • 7.1 to ≤ *unaffected

References