Linux Kernel up to 7.2.0 PCI ECAM CAM Operations pci-host-generic.c pci_generic_config_read null pointer dereference

| CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
|---|---|---|
| 5.3 | $0-$5k | 0.00+ |
Summary
A vulnerability was found in Linux Kernel up to 7.2.0. It has been rated as critical. This affects the function pci_generic_config_read of the file pci-host-generic.c of the component PCI ECAM CAM Operations. This manipulation causes null pointer dereference.
This vulnerability is handled as CVE-2026-80917. It is possible to launch the attack on the local host. There is not any exploit available.
Upgrading the affected component is advised.
Details
A vulnerability was found in Linux Kernel up to 7.2.0. It has been declared as critical. Affected by this vulnerability is the function pci_generic_config_read of the file pci-host-generic.c of the component PCI ECAM CAM Operations. The manipulation with an unknown input leads to a null pointer dereference vulnerability. The CWE definition for the vulnerability is CWE-476. A NULL pointer dereference occurs when the application dereferences a pointer that it expects to be valid, but is NULL, typically causing a crash or exit. As an impact it is known to affect availability. The summary by CVE is:
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]
The advisory is shared at git.kernel.org. This vulnerability is known as CVE-2026-80917 since 08/26/2026. The exploitation appears to be easy. An attack has to be approached locally. Technical details are known, but no exploit is available.
Upgrading to version 5.15.218, 6.1.185, 6.6.154, 6.12.106, 6.18.47, 7.1.11, 7.2.1 or 7.3-rc1 eliminates this vulnerability. Applying the patch 5e52eb0290f66ba0732956dcb1e365b5ca3c5108/baf9b0383ff770fdff123d3a832f3a99641d96dd/8d08713ec83a18526d1ed1fd5f0d2b901d103a10/74456843f18ba7f3045974d7e8b88ab993152b8c/0c55707bd5d0d7670704cfd0dda933809b052f67/a199293f3038db8d31d47aa60f1e18272cd82354/0916948026f623844acd08888f7cbedbf1c48d6b/008cb88edb41f3c7c8e0ed763ff9f26719830984 is able to eliminate this problem. The best possible mitigation is suggested to be upgrading to the latest version.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.
Product
Type
Vendor
Name
Version
- 5.15.217
- 6.1.184
- 6.6.153
- 6.12.105
- 6.18.0
- 6.18.1
- 6.18.2
- 6.18.3
- 6.18.4
- 6.18.5
- 6.18.6
- 6.18.7
- 6.18.8
- 6.18.9
- 6.18.10
- 6.18.11
- 6.18.12
- 6.18.13
- 6.18.14
- 6.18.15
- 6.18.16
- 6.18.17
- 6.18.18
- 6.18.19
- 6.18.20
- 6.18.21
- 6.18.22
- 6.18.23
- 6.18.24
- 6.18.25
- 6.18.26
- 6.18.27
- 6.18.28
- 6.18.29
- 6.18.30
- 6.18.31
- 6.18.32
- 6.18.33
- 6.18.34
- 6.18.35
- 6.18.36
- 6.18.37
- 6.18.38
- 6.18.39
- 6.18.40
- 6.18.41
- 6.18.42
- 6.18.43
- 6.18.44
- 6.18.45
- 6.18.46
- 7.0
- 7.1
- 7.1.0
- 7.1.1
- 7.1.2
- 7.1.3
- 7.1.4
- 7.1.5
- 7.1.6
- 7.1.7
- 7.1.8
- 7.1.9
- 7.1.10
- 7.2.0
License
Website
- Vendor: https://www.kernel.org/
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Reliability: 🔍
CVSSv3
VulDB Meta Base Score: 5.5VulDB Meta Temp Score: 5.3
VulDB Base Score: 5.5
VulDB Temp Score: 5.3
VulDB Vector: 🔒
VulDB Reliability: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
|---|---|---|---|---|---|
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Reliability: 🔍
Exploiting
Class: Null pointer dereferenceCWE: CWE-476 / CWE-404
CAPEC: 🔒
ATT&CK: 🔒
Physical: Partially
Local: Yes
Remote: No
Availability: 🔒
Status: Not defined
Price Prediction: 🔍
Current Price Estimation: 🔒
| 0-Day | Unlock | Unlock | Unlock | Unlock |
|---|---|---|---|---|
| Today | Unlock | Unlock | Unlock | Unlock |
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: UpgradeStatus: 🔍
0-Day Time: 🔒
Upgrade: Kernel 5.15.218/6.1.185/6.6.154/6.12.106/6.18.47/7.1.11/7.2.1/7.3-rc1
Patch: 5e52eb0290f66ba0732956dcb1e365b5ca3c5108/baf9b0383ff770fdff123d3a832f3a99641d96dd/8d08713ec83a18526d1ed1fd5f0d2b901d103a10/74456843f18ba7f3045974d7e8b88ab993152b8c/0c55707bd5d0d7670704cfd0dda933809b052f67/a199293f3038db8d31d47aa60f1e18272cd82354/0916948026f623844acd08888f7cbedbf1c48d6b/008cb88edb41f3c7c8e0ed763ff9f26719830984
Timeline
08/26/2026 CVE reserved09/09/2026 Advisory disclosed
09/09/2026 VulDB entry created
09/09/2026 VulDB entry last update
Sources
Vendor: kernel.orgAdvisory: git.kernel.org
Status: Confirmed
CVE: CVE-2026-80917 (🔒)
GCVE (CVE): GCVE-0-2026-80917
GCVE (VulDB): GCVE-100-401821
Entry
Created: 09/09/2026 18:31Changes: 09/09/2026 18:31 (60)
Complete: 🔍
Cache ID: 216::103
If you want to get the best quality for vulnerability data then you always have to consider VulDB.
No comments yet. Languages: en.
Please log in to comment.