Skip to content
Heist/ feed
Back to feed
HighFix available

xfs: fix cursor and pointer handling when recovering iunlink buckets

Type: advisorySources: OSV

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.

Products
Kernel
Affected versions
Not specified
Fixed versions
6.1.191, 6.12.113, 6.18.55, 6.6.160, 7.2.9
CVEs
CVE-2026-98443
Confirmed fixed CVEs
Not specified
Updated in this feed
7 Nov 2026, 04:28 UTC · Revision 1

Source evidence

xfs: fix cursor and pointer handling when recovering iunlink buckets

core-osv · Original source

Published 18 Oct 2026, 15:14 UTC

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.

osv:CVE-2026-98443

Kernel

Fixed versions: 6.1.191, 6.6.160, 6.12.113, 6.18.55, 7.2.9

Complete source record
{
  "id": "975662d6fe32a5d1eeb345ff736ffd1f02c054434481e31f0e5e6475e5b14fac",
  "url": "https://osv.dev/vulnerability/CVE-2026-98443",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "xfs: fix cursor and pointer handling when recovering iunlink buckets",
    "summary": "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.",
    "evidence": "osv:CVE-2026-98443",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "6.1.191",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.160",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.113",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.55",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.2.9",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-98443",
      "aliases": [
        "CVE-2026-98443"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "04755d2e5821b3afbaadd09fe5df58d04de36484"
                },
                {
                  "fixed": "8cfde7b2fb7288f4f6b90293e8702ff897c682fe"
                },
                {
                  "fixed": "47a948ba653a463d429e02fda2f06a3d6b78666d"
                },
                {
                  "fixed": "8c9d5b8a96d6b93eb24e07b4163c89341ba29bd1"
                },
                {
                  "fixed": "66a2179d02668f8df44b1a249899006f3ba38ea0"
                },
                {
                  "fixed": "961c717e6bf0e53c2c2b1fe4aef1add9390fedab"
                },
                {
                  "fixed": "65f39d09d73718611cee40399179323b5d4ead00"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98443.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.0.0"
                },
                {
                  "fixed": "6.1.191"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.160"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.113"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.55"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.2.9"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98443.json"
          }
        }
      ],
      "modified": "2026-11-01T02:30:49.042207430Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/47a948ba653a463d429e02fda2f06a3d6b78666d",
        "https://git.kernel.org/stable/c/65f39d09d73718611cee40399179323b5d4ead00",
        "https://git.kernel.org/stable/c/66a2179d02668f8df44b1a249899006f3ba38ea0",
        "https://git.kernel.org/stable/c/8c9d5b8a96d6b93eb24e07b4163c89341ba29bd1",
        "https://git.kernel.org/stable/c/8cfde7b2fb7288f4f6b90293e8702ff897c682fe",
        "https://git.kernel.org/stable/c/961c717e6bf0e53c2c2b1fe4aef1add9390fedab",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98443.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-98443",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98443.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-98443",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 518131,
  "published_at": "2026-10-18T15:14:53.597+00:00"
}