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.
Published: 2026-10-18
Score: n/a
EPSS: n/a
KEV: No
Impact: Use-after-free potentially leading to arbitrary code execution or denial of service
Action: Immediate Patch
AI Analysis

Impact

The vulnerability is a flaw in the XFS file system’s recovery logic for unlinked inode buckets. The code fails to clear a reference after it is released, which can create a use‑after‑free condition when the inode garbage‑collector flush operation fails. Other defects introduce memory leaks and self‑referencing pointers that can form loops in the unlinked list. An attacker able to trigger the garbage‑collection flush path could corrupt kernel memory, potentially leading to arbitrary code execution or a kernel panic. The weakness is a classic Use After Free (CWE‑416).

Affected Systems

All Linux kernel versions that include the XFS file system and compile the xlog_recover_iunlink_bucket routine are impacted. No precise version range is supplied; the issue is identified by the generic Linux kernel product label. Distributions shipping a kernel that uses the unpatched XFS code are potentially affected.

Risk and Exploitability

No CVSS or EPSS score is publicly available, and the flaw is not listed in CISA’s KEV catalog. The exploitation is inferred to require triggering a failure in the inode‑gc flush path, implying a somewhat constrained attack vector that may be local; yet the impact could be severe if achieved. Until a formal severity metric is assigned, the vulnerability should be treated as high potential risk for local privilege escalation to root or for causing a denial‑of‑service via a kernel panic.

Generated by OpenCVE AI on October 18, 2026 at 17:15 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the kernel patch that includes the commit fixes listed in the advisory references; update to a kernel build that incorporates the corrected xlog_recover_iunlink_bucket code.
  • Verify that inode garbage‑collection flushes complete successfully by monitoring system logs (dmesg) for errors related to XFS inode handling and correct any configuration that could cause flush failures.
  • If a patched kernel is not immediately available, reboot the system to clear the inode list and prevent the creation of loops until the update can be applied.

Generated by OpenCVE AI on October 18, 2026 at 17:15 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 18 Oct 2026 17:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
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.
Title xfs: fix cursor and pointer handling when recovering iunlink buckets
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-18T15:14:53.597Z

Reserved: 2026-09-25T10:25:14.349Z

Link: CVE-2026-98443

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:16:54.620

Modified: 2026-10-18T16:16:54.620

Link: CVE-2026-98443

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-18T17:15:14Z

Weaknesses