CVE-2024-26918

PCI: Fix active state requirement in PME polling

Medium · published April 17, 2024

CVSS v3.1
6.2
EPSS
0%
Percentile
13.0
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

PCI: Fix active state requirement in PME polling

The commit noted in fixes added a bogus requirement that runtime PM managed

devices need to be in the RPM_ACTIVE state for PME polling. In fact, only

devices in low power states should be polled.

However there's still a requirement that the device config space must be

accessible, which has implications for both the current state of the polled

device and the parent bridge, when present. It's not sufficient to assume

the bridge remains in D0 and cases have been observed where the bridge

passes the D0 test, but the PM state indicates RPM_SUSPENDING and config

space of the polled device becomes inaccessible during pci_pme_wakeup().

Therefore, since the bridge is already effectively required to be in the

RPM_ACTIVE state, formalize this in the code and elevate the PM usage count

to maintain the state while polling the subordinate device.

This resolves a regression reported in the bugzilla below where a

Thunderbolt/USB4 hierarchy fails to scan for an attached NVMe endpoint

downstream of a bridge in a D3hot power state.

The record
Technical detail
CVSS v3.1
6.2 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00230 · 13.0th percentile
Published
2024-04-17T15:59Z
EPSS history
Timeline
  • 17 APR 15:59Z
    PCI: Fix active state requirement in PME polling
    cvelistv5