{
  "affected": [
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:12",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "6.1.187-1"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:13",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "6.12.107-1"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:14",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "7.1.12-1"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "details": "In the Linux kernel, the following vulnerability has been resolved:  PCI: host-generic: Fix NULL pointer dereference on 32-bit CAM systems  On 32-bit systems the config space is too large to ioremap in one go, so pci_ecam_create() maps each bus segment separately and relies on the -\u003eadd_bus callback (pci_ecam_add_bus) to populate the per-bus mapping in cfg-\u003ewinp[]. pci_ecam_map_bus() then uses that mapping as the base for every config access.  The generic ECAM ops (pci_generic_ecam_ops) already provide the -\u003eadd_bus and -\u003eremove_bus callbacks, but the CAM (legacy) ops in pci-host-generic.c do not. As a result, on a 32-bit host using \"pci-host-cam-generic\" the per-bus mapping is never set up and the first config read dereferences a NULL base, crashing during bus enumeration:   Unable to handle kernel NULL pointer dereference at virtual address 00000800  Oops [#1]  CPU: 0 PID: 1 Comm: swapper Not tainted 6.9.7+ #43  Hardware name: Digilent Nexys-Video-A7 RV32 (DT)  epc : pci_generic_config_read+0x40/0xb0   ra : pci_generic_config_read+0x2c/0xb0  [\u003cc038db9c\u003e] pci_generic_config_read+0x40/0xb0  [\u003cc038da04\u003e] pci_bus_read_config_dword+0x50/0xb0  [\u003cc0391e94\u003e] pci_bus_generic_read_dev_vendor_id+0x3c/0x1ec  [\u003cc039245c\u003e] pci_scan_single_device+0xa4/0x11c  [\u003cc0392570\u003e] pci_scan_slot+0x9c/0x23c  [\u003cc039388c\u003e] pci_scan_child_bus_extend+0x58/0x2f4  [\u003cc0393db0\u003e] pci_scan_root_bus_bridge+0x64/0xe8  [\u003cc0393e54\u003e] pci_host_probe+0x20/0xc8  [\u003cc03bc6f4\u003e] pci_host_common_probe+0x144/0x1e4  Fix this by giving the CAM ops the same -\u003eadd_bus/-\u003eremove_bus callbacks. Since pci_ecam_add_bus() and pci_ecam_remove_bus() are static to ecam.c, move the CAM ops definition there as pci_generic_cam_ops (mirroring pci_generic_ecam_ops) and export it for pci-host-generic.c to reference.  [mani: removed timestamp from log]",
  "id": "DEBIAN-CVE-2026-80917",
  "modified": "2026-09-10T04:47:27.153169180Z",
  "published": "2026-09-09T17:17:46.680Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://security-tracker.debian.org/tracker/CVE-2026-80917"
    }
  ],
  "upstream": [
    "CVE-2026-80917"
  ]
}