-

CVE-2026-80917

PCI: host-generic: Fix NULL pointer dereference on 32-bit CAM systems

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
->add_bus callback (pci_ecam_add_bus) to populate the per-bus mapping in
cfg->winp[]. 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 ->add_bus
and ->remove_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
 [<c038db9c>] pci_generic_config_read+0x40/0xb0
 [<c038da04>] pci_bus_read_config_dword+0x50/0xb0
 [<c0391e94>] pci_bus_generic_read_dev_vendor_id+0x3c/0x1ec
 [<c039245c>] pci_scan_single_device+0xa4/0x11c
 [<c0392570>] pci_scan_slot+0x9c/0x23c
 [<c039388c>] pci_scan_child_bus_extend+0x58/0x2f4
 [<c0393db0>] pci_scan_root_bus_bridge+0x64/0xe8
 [<c0393e54>] pci_host_probe+0x20/0xc8
 [<c03bc6f4>] pci_host_common_probe+0x144/0x1e4

Fix this by giving the CAM ops the same ->add_bus/->remove_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]
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
≫
Produkt Linux
Default Statusunaffected
Version 8fe55ef23387ce3c7488375b1fd539420d7654bb
Version < 5e52eb0290f66ba0732956dcb1e365b5ca3c5108
Status affected
Version 8fe55ef23387ce3c7488375b1fd539420d7654bb
Version < baf9b0383ff770fdff123d3a832f3a99641d96dd
Status affected
Version 8fe55ef23387ce3c7488375b1fd539420d7654bb
Version < 8d08713ec83a18526d1ed1fd5f0d2b901d103a10
Status affected
Version 8fe55ef23387ce3c7488375b1fd539420d7654bb
Version < 74456843f18ba7f3045974d7e8b88ab993152b8c
Status affected
Version 8fe55ef23387ce3c7488375b1fd539420d7654bb
Version < 0c55707bd5d0d7670704cfd0dda933809b052f67
Status affected
Version 8fe55ef23387ce3c7488375b1fd539420d7654bb
Version < a199293f3038db8d31d47aa60f1e18272cd82354
Status affected
Version 8fe55ef23387ce3c7488375b1fd539420d7654bb
Version < 0916948026f623844acd08888f7cbedbf1c48d6b
Status affected
Version 8fe55ef23387ce3c7488375b1fd539420d7654bb
Version < 008cb88edb41f3c7c8e0ed763ff9f26719830984
Status affected
Version 0b5877a1aeacdbf32b3bea91326592004ec7806f
Status affected
Version a037ebbe72a4f98495b193112e2b2000e5e09eb5
Status affected
Version 5.12.19
Version < 5.13
Status affected
Version 5.13.4
Version < 5.14
Status affected
HerstellerLinux
≫
Produkt Linux
Default Statusaffected
Version 5.14
Status affected
Version 0
Version < 5.14
Status unaffected
Version <= 5.15.*
Version 5.15.218
Status unaffected
Version <= 6.1.*
Version 6.1.185
Status unaffected
Version <= 6.6.*
Version 6.6.154
Status unaffected
Version <= 6.12.*
Version 6.12.106
Status unaffected
Version <= 6.18.*
Version 6.18.47
Status unaffected
Version <= 7.1.*
Version 7.1.11
Status unaffected
Version <= 7.2.*
Version 7.2.1
Status unaffected
Version <= *
Version 7.3-rc1
Status unaffected
VulnDex Vulnerability Enrichment
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.16% 0.059
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
Es wurden noch keine Informationen zu CWE veröffentlicht.
https://git.kernel.org/stable/c/5e52eb0290f66ba0732956dcb1e365b5ca3c5108
https://git.kernel.org/stable/c/baf9b0383ff770fdff123d3a832f3a99641d96dd
https://git.kernel.org/stable/c/8d08713ec83a18526d1ed1fd5f0d2b901d103a10
https://git.kernel.org/stable/c/74456843f18ba7f3045974d7e8b88ab993152b8c
https://git.kernel.org/stable/c/0c55707bd5d0d7670704cfd0dda933809b052f67
https://git.kernel.org/stable/c/a199293f3038db8d31d47aa60f1e18272cd82354
https://git.kernel.org/stable/c/0916948026f623844acd08888f7cbedbf1c48d6b
https://git.kernel.org/stable/c/008cb88edb41f3c7c8e0ed763ff9f26719830984