Database/Kernel, userspace & hypervisor
Linux kernel PCI/proc: config space read checked against the reader's credentials, not the opener's
Impact
proc_bus_pci_read() decided how much of PCI config space to expose using capable(CAP_SYS_ADMIN), which tests the credentials of whoever calls read() rather than the process that opened the file. The sysfs equivalent has checked the opener's credentials for years, so the two interfaces applied the same capability to different subjects and the procfs restriction could be bypassed - or, in the passed-descriptor direction, a descriptor opened by a privileged helper and handed to an unprivileged process behaved inconsistently between the two paths. This matters on nodes doing GPU or NIC passthrough, where a privileged supervisor opens device files and hands descriptors to a less privileged VMM holding an assigned device. The fix uses file_ns_capable() so the decision is settled at open() time and tied to the file, matching sysfs. The effect is config space read visibility, not write access or code execution.
Who can reach it
Local only, and only where a privileged process opens /proc/bus/pci config space and passes the descriptor to a lower-privileged process - the assigned-device VMM pattern is the concrete case. Not reachable over the network and not reachable by a tenant confined to a container without that descriptor.
What to do
Pick up the fix from your distribution's stable kernel; it is in the mainline stable branches (see the git.kernel.org commits). Applying it means booting the new kernel, so each node has to be drained and rebooted. There is no runtime mitigation other than not passing PCI config space descriptors across a privilege boundary.
References
Related entries
- Microsoft Hyper-V: vmswitch fails to validate guest OID requestsCVE-2021-28476 · Microsoft Hyper-VCritical
- Incus: instance snapshots bypass restricted.containers.lowlevel, giving command execution on the hostCVE-2026-48751 · Incus (instance snapshots ignore restricted.containers.lowlevel)Critical
- VMware ESXi (OpenSLP): Use-after-free in OpenSLP on port 427 - unauthenticated remote code execution on the hypervisorCVE-2020-3992 · VMware ESXi (OpenSLP)Critical
- Linux kernel mlx5_core kTLS RX offload: TLS RX resync list corruption: entries are moved by the resync handlerCVE-2021-47215 · Linux kernel mlx5_core kTLS RX offloadCritical
- Linux kernel (drivers/nvme/host): The NVMe/RDMA initiator destroys the queue pair before the connection manager ID, soCVE-2021-47378 · Linux kernel (drivers/nvme/host)Critical
- Linux kernel (net/tls): KTLS stored a negative errno into the socket error field where a positive value is expected. ACVE-2021-47496 · Linux kernel (net/tls)Critical
This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.