Skip to content
CVE PROGRAM SOURCE RECORD7.8 High

CVE-2026-98443

xfs: fix cursor and pointer handling when recovering iunlink buckets

Description

In the Linux kernel, the following vulnerability has been resolved: xfs: fix cursor and pointer handling when recovering iunlink buckets LOLLM pointed out a bug in xlog_recover_iunlink_bucket: 1. We don't null out prev_ip after releasing it, which can lead to UAF problems if the inodegc flush call in the loop fails. at which point I noticed even more bugs: 2. If the inodegc flush inside the loop fails, we also leak @ip. 3. We set prev_agino to agino having already advanced agino, which results in inodes with i_prev_unlinked set to itself. 4. If we exit the bottom of the loop with prev_ip set, then prev_ip aliases ip and we also set its i_prev_unlinked to itself. Bugs 3 and 4 introduce loops into the unlinked list, though these loops don't surface because we immediately flush each unlinked inode after loading it. Fix all of these issues.

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

  • 04755d2e5821b3afbaadd09fe5df58d04de36484 to < 47a948ba653a463d429e02fda2f06a3d6b78666daffected
  • 04755d2e5821b3afbaadd09fe5df58d04de36484 to < 8c9d5b8a96d6b93eb24e07b4163c89341ba29bd1affected
  • 04755d2e5821b3afbaadd09fe5df58d04de36484 to < 66a2179d02668f8df44b1a249899006f3ba38ea0affected
  • 04755d2e5821b3afbaadd09fe5df58d04de36484 to < 961c717e6bf0e53c2c2b1fe4aef1add9390fedabaffected
  • 04755d2e5821b3afbaadd09fe5df58d04de36484 to < 65f39d09d73718611cee40399179323b5d4ead00affected

Linux Linux

Default version status: affected

  • 6.0affected
  • 0 to < 6.0unaffected
  • 6.6.160 to ≤ 6.6.*unaffected
  • 6.12.113 to ≤ 6.12.*unaffected
  • 6.18.55 to ≤ 6.18.*unaffected
  • 7.2.9 to ≤ 7.2.*unaffected
  • 7.3 to ≤ *unaffected

References