{
  "schema_version": "1.6.1",
  "id": "RPI-CVE-2026-80538",
  "modified": "2026-10-09T11:39:44Z",
  "upstream": [
    "CVE-2026-80538"
  ],
  "published": "2026-08-26T14:37:59Z",
  "summary": "xfs: propagate errors from xfs_rtginode_load",
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nxfs: propagate errors from xfs_rtginode_load\n\nxfs_rtginode_ensure() treats every xfs_rtginode_load() error other than\n-ENOENT as success.  This can leave the realtime group inode unset after an\nI/O, allocation, or corruption error.  Growfs then continues as though the\ninode had been loaded.\n\nOnly -ENOENT means that the inode needs to be created.  Return all other\nerrors to the growfs caller.",
  "severity": [
    {
      "type": "CVSS_V3",
      "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/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-80538"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/ec19cea4ef1ce9d6e2e3f7e9e7bf88ede31176e7"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/61c5165f02deb2eed9b6b539bb279e6629fee652"
    },
    {
      "type": "FIX",
      "url": "https://git.kernel.org/stable/c/b7e53968cb8882c2d276429ea8550848a4940874"
    }
  ],
  "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.1,
      "cvss_v3_severity": "High",
      "scenario": "AV:L - The bug is reached only through the local XFS_IOC_FSGROWFSRT ioctl (xfs_file_ioctl -> xfs_growfs_rt -> xfs_growfs_rtg -> xfs_rtginode_ensure); it is not exposed via NFS, ksmbd, or any network packet handler.\nAC:L - A growfs caller can reliably force xfs_rtginode_load() to return a non-ENOENT error using attacker-influenced conditions such as memory pressure, RT device/metadata I/O faults, or corrupted rtgroup inode state, deterministically entering the swallowed-error path.\nPR:L - xfs_growfs_rt() gates on capable(CAP_SYS_ADMIN), which is satisfied by user-namespace root per kernel CNA guidance; only a writable file descriptor on a realtime-enabled XFS mount is additionally required, not init-namespace root.\nUI:N - The attacker with the required capability and mount write access issues XFS_IOC_FSGROWFSRT directly; no separate victim action such as opening files or mounting the filesystem is needed beyond that.\nS:U - Impact is a host kernel crash or on-disk XFS realtime metadata corruption within the same kernel security domain; it does not cross a VM, container, or IOMMU isolation boundary.\nC:N - The failure mode is an unset rtgroup inode pointer followed by NULL xfs_inode dereference during growfs; there is no use-after-free, out-of-bounds read, or other kernel memory disclosure primitive.\nI:H - Continuing growfs after rtgroup inode load failures lets superblock and realtime bitmap/summary update paths proceed while critical metadata inodes were never loaded, corrupting on-disk XFS realtime metadata integrity (notably on zoned growfs paths that can commit before crashing).\nA:H - When growfs proceeds with NULL rtgroup bitmap or summary inodes, xfs_growfs_rt_bmblock and xfs_rtfile_initialize_blocks dereference the missing xfs_inode and trigger a kernel oops or panic, denying system availability."
    }
  }
}
