CVE-2026-97552: xfs: initialise error in xfs_defer_finish_one()
In the Linux kernel, the following vulnerability has been resolved:
xfs: initialise error in xfsdeferfinishone()
xfsdeferfinishone() declares error without an initialiser and only assigns it inside the loop over dfp->dfpwork. When that list is empty the loop body never runs, control falls through to the "Done with the dfp, free it" path, and the function returns an indeterminate value.
An item-less pending item reaches this through xfsdeferaddbarrier(), which xfsreapagblocks() uses on any CONFIGXFSONLINEREPAIR kernel. xfsdeferfinishnoroll() treats any non-EAGAIN return as fatal, so a non-zero stack value turns a successful barrier into a SHUTDOWNCORRUPTINCORE in the middle of a repair. Zero is the correct result: reaching the free path means the item loop drained without a non-zero error.
Affected Software
Event History
Frequently Asked Questions
Which systems are exposed to this issue?
Systems running a Linux kernel built with CONFIG_XFS_ONLINE_REPAIR are exposed when XFS online repair reaches xfs_reap_ag_blocks(), which adds an item-less deferred barrier.
What is the practical impact if the flaw is triggered?
An uninitialized stack value can be returned after a successful barrier. If that value is non-zero, the repair path can treat it as fatal and shut down the XFS filesystem with SHUTDOWN_CORRUPT_INCORE.
Does exploitation require an attacker to provide a malformed filesystem item?
No malformed pending item is required according to the available information. The affected path uses an intentionally item-less barrier created by xfs_defer_add_barrier() during online repair.