{
  "schema_version": "1.6.1",
  "id": "RPI-CVE-2026-80531",
  "modified": "2026-10-09T11:39:44Z",
  "upstream": [
    "CVE-2026-80531"
  ],
  "published": "2026-08-26T14:37:59Z",
  "summary": "xfs: avoid UAF on sc->tempip in xrep_tempfile_create",
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfs: avoid UAF on sc->tempip in xrep_tempfile_create\n\nLOLLM noticed a potential UAF if the tempfile creation code fails after\nit set sc->tempip.  Fix that.",
  "severity": [
    {
      "type": "CVSS_V3",
      "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
    }
  ],
  "affected": [
    {
      "package": {
        "ecosystem": "Raspberry Pi OS:13",
        "name": "linux"
      },
      "versions": [
        "1:6.18.29-1+rpt1",
        "1:6.18.33-1+rpt1",
        "1:6.18.34-1+rpt1",
        "1:6.18.39-1+rpt1"
      ],
      "ecosystem_specific": {
        "binaries": [
          {
            "binary_name": "linux-image-6.18.29+rpt-rpi-2712",
            "binary_version": "1:6.18.29-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.29+rpt-rpi-v6",
            "binary_version": "1:6.18.29-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.29+rpt-rpi-v7",
            "binary_version": "1:6.18.29-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.29+rpt-rpi-v8",
            "binary_version": "1:6.18.29-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.29+rpt-rpi-v8-rt",
            "binary_version": "1:6.18.29-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.33+rpt-rpi-2712",
            "binary_version": "1:6.18.33-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.33+rpt-rpi-v6",
            "binary_version": "1:6.18.33-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.33+rpt-rpi-v7",
            "binary_version": "1:6.18.33-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.33+rpt-rpi-v8",
            "binary_version": "1:6.18.33-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.33+rpt-rpi-v8-rt",
            "binary_version": "1:6.18.33-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.34+rpt-rpi-2712",
            "binary_version": "1:6.18.34-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.34+rpt-rpi-v6",
            "binary_version": "1:6.18.34-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.34+rpt-rpi-v7",
            "binary_version": "1:6.18.34-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.34+rpt-rpi-v8",
            "binary_version": "1:6.18.34-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.34+rpt-rpi-v8-rt",
            "binary_version": "1:6.18.34-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.39+rpt-rpi-2712",
            "binary_version": "1:6.18.39-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.39+rpt-rpi-v6",
            "binary_version": "1:6.18.39-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.39+rpt-rpi-v7",
            "binary_version": "1:6.18.39-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.39+rpt-rpi-v8",
            "binary_version": "1:6.18.39-1+rpt1"
          },
          {
            "binary_name": "linux-image-6.18.39+rpt-rpi-v8-rt",
            "binary_version": "1:6.18.39-1+rpt1"
          }
        ]
      },
      "database_specific": {
        "per_version": {
          "1:6.18.29-1+rpt1": {
            "linux_commit": "66318c5b5cd8145a662303af12ed39ac07eb27cc",
            "upstream_version": "6.18.29",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.18.46"
          },
          "1:6.18.33-1+rpt1": {
            "linux_commit": "95b85bebbedcaedfa7ca79116ed38b7376fba412",
            "upstream_version": "6.18.33",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.18.46"
          },
          "1:6.18.34-1+rpt1": {
            "linux_commit": "c8c7494100e99ee05b11aaa4f0588a223a63d1af",
            "upstream_version": "6.18.34",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.18.46"
          },
          "1:6.18.39-1+rpt1": {
            "linux_commit": "60ea684a8ace97bb0db1a16e20753bdd6ab371ff",
            "upstream_version": "6.18.39",
            "assessment": "commit ancestry (strak rule)",
            "upstream_fixed": "6.18.46"
          }
        }
      }
    }
  ],
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://www.cve.org/CVERecord?id=CVE-2026-80531"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/08a20776ce33a2a52d856911e447c59424f0465a"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/cd1f876d1bc2e94f271e07c606cacd85b109108a"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/96246a3200d32a43766152e56bc7ae2d93604d74"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/0c88e10d12de9ca7cbed1467bb1b52310101bff8"
    }
  ],
  "database_specific": {
    "source": "https://git.kernel.org/pub/scm/linux/security/vulns.git",
    "upstream_modified": "2026-08-27T05:18:36Z",
    "severity": {
      "source": "kernel CNA",
      "cvss_v3_score": 7.8,
      "cvss_v3_severity": "High",
      "scenario": "AV:L - The bug is only reachable via XFS_IOC_SCRUB_METADATA or XFS_IOC_SCRUBV_METADATA ioctl on an open XFS file descriptor (xfs_file_ioctl -> xfs_ioc_scrub_metadata -> xfs_scrub_metadata -> xrep_setup_* -> xrep_tempfile_create); it is not exposed through NFS, SMB, or other network-facing kernel services.\nAC:L - An attacker with ioctl access can deterministically hit the error path by invoking online repair (XFS_SCRUB_IFLAG_REPAIR) and forcing tempfile creation to fail after xfs_icreate sets sc->tempip (e.g., ENOSPC from filling the filesystem or EIO), without races or uncontrollable victim state.\nPR:L - Both scrub ioctl handlers enforce capable(CAP_SYS_ADMIN), which is obtainable by unprivileged users who map root in a user namespace and mount their own XFS filesystem to run online scrub/repair, consistent with other XFS scrub CVE scoring.\nUI:N - Exploitation requires no victim interaction; the attacker issues the scrub/repair ioctl themselves once they have the required privileges and can induce the tempfile-creation failure.\nS:U - Impact is kernel memory corruption and crash within the same kernel security domain during XFS online repair teardown; this does not cross VM, container, or IOMMU security boundaries.\nC:H - On failure after sc->tempip is set, xrep_tempfile_create releases the inode but left a dangling pointer; xchk_teardown then calls xrep_tempfile_rele which performs xfs_is_metadir_inode, xfs_iunlock, and xchk_irele on freed xfs_inode memory\u2014a use-after-free enabling arbitrary kernel read.\nI:H - The stale sc->tempip is dereferenced in xrep_tempfile_rele for locking, metadir cleanup, and inode release on freed memory; UAF on xfs_inode structures can corrupt heap metadata and be leveraged for arbitrary kernel write or control-flow hijacking.\nA:H - Use-after-free on sc->tempip during xchk_teardown provokes double-free, invalid inode lock operations, or kernel oops/panic when online repair setup fails after partial tempfile creation, causing complete host denial of service."
    }
  }
}
