CVE-2026-64187

xfs: fail recovery on a committed log item with no regions

State
Published
Severity
Not scored
Published
Jul 20, 2026
Updated
Aug 17, 2026
Reserved
Jul 19, 2026

Read the record on cve.org

Description

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

xfs: fail recovery on a committed log item with no regions

If the first op of a transaction is a bare transaction header (len == sizeof(struct xfs_trans_header)), xlog_recover_add_to_trans() adds an item but no region, leaving it on r_itemq with ri_cnt == 0 and ri_buf == NULL.

The header can be split across op records, so later ops may still add regions; the item is only invalid if the transaction commits with none. The runtime commit path never emits such a transaction, so this only happens on a crafted log. It came from an AI-assisted code audit of the recovery parser.

xlog_recover_reorder_trans() calls ITEM_TYPE() on the item, which reads *(unsigned short *)item->ri_buf[0].iov_base and faults on the NULL ri_buf. Reject it there, before the commit handlers that also read ri_buf[0].

KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007] RIP: 0010:xlog_recover_reorder_trans (fs/xfs/xfs_log_recover.c:1836) xlog_recover_commit_trans (fs/xfs/xfs_log_recover.c:2043) xlog_recover_process_data (fs/xfs/xfs_log_recover.c:2501) xlog_do_recovery_pass (fs/xfs/xfs_log_recover.c:3244) xlog_recover (fs/xfs/xfs_log_recover.c:3493) xfs_log_mount (fs/xfs/xfs_log.c:618) xfs_mountfs (fs/xfs/xfs_mount.c:1034) xfs_fs_fill_super (fs/xfs/xfs_super.c:1938) vfs_get_tree (fs/super.c:1695) path_mount (fs/namespace.c:4161) __x64_sys_mount (fs/namespace.c:4367)

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 89cebc8477290b152618ffa110bbeae340d50900 to before 5105426424ad6981db827cc1ada835a488fab035Affected
  • 89cebc8477290b152618ffa110bbeae340d50900 to before 226a3c8bea7163c39fe0a1c0ffc7ab7410ef3ba4Affected
  • 89cebc8477290b152618ffa110bbeae340d50900 to before d0ae7ec3aa61db5140b107f0a63e017f63e56a96Affected
  • 89cebc8477290b152618ffa110bbeae340d50900 to before d50b1fd066d66ceb548ba43e332cfe8a47e5e55aAffected
  • 89cebc8477290b152618ffa110bbeae340d50900 to before d98f22d2e11e0a36493aeb25b2933571ee90d9a4Affected
  • 89cebc8477290b152618ffa110bbeae340d50900 to before cccbabeb9a18fcb978d76d6047f2b59214aa7749Affected
  • 89cebc8477290b152618ffa110bbeae340d50900 to before 2094dab19d45c487285617b7b68913d0cc0c1211Affected
LinuxLinux
  • 4.3Affected
  • before 4.3Not affected
  • 5.15.212 through 5.15.*Not affected
  • 6.1.178 through 6.1.*Not affected
  • 6.6.145 through 6.6.*Not affected
  • 6.12.96 through 6.12.*Not affected
  • 6.18.39 through 6.18.*Not affected
  • 7.1.4 through 7.1.*Not affected
  • 7.2 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.