LiveActive security incident?Get immediate response
CVE Record

CVE-2025-22031: PCI/bwctrl: Fix NULL pointer dereference on bus number exhaustion

In the Linux kernel, the following vulnerability has been resolved: PCI/bwctrl: Fix NULL pointer dereference on bus number exhaustion When BIOS neglects to assign bus numbers to PCI bridges, the kernel attempts to correct that during PCI device enumeration. If it runs out of bus numbers, no pci_bus is allocated and the "subordinate" pointer in the bridge's pci_dev remains NULL. The PCIe bandwidth controller erroneously does not check for a NULL subordinate pointer and dereferences it on probe. Bandwidth control of unusable devices below the bridge is of questionable utility, so simply error out instead. This mirrors what PCIe hotplug does since commit 62e4492c3063 ("PCI: Prevent NULL dereference during pciehp probe"). The PCI core emits a message with KERN_INFO severity if it has run out of bus numbers. PCIe hotplug emits an additional message with KERN_ERR severity to inform the user that hotplug functionality is disabled at the bridge. A similar message for bandwidth control does not seem merited, given that its only purpose so far is to expose an up-to-date link speed in sysfs and throttle the link speed on certain laptops with limited Thermal Design Power. So error out silently. User-visible messages: pci 0000:16:02.0: bridge configuration invalid ([bus 00-00]), reconfiguring [...] pci_bus 0000:45: busn_res: [bus 45-74] end is updated to 74 pci 0000:16:02.0: devices behind bridge are unusable because [bus 45-74] cannot be assigned for them [...] pcieport 0000:16:02.0: pciehp: Hotplug bridge without secondary bus, ignoring [...] BUG: kernel NULL pointer dereference RIP: pcie_update_link_speed pcie_bwnotif_enable pcie_bwnotif_probe pcie_port_probe_service really_probe

MediumCVSS 5.5Not KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

CVE-2025-22031 is a Linux kernel availability flaw. On systems where firmware fails to assign PCI bus numbers and the kernel exhausts available bus numbers, PCIe bandwidth control can dereference a missing bridge pointer and crash the kernel. The business impact is service disruption, not data theft or privilege escalation based on the provided sources.

Executive priority

Treat as a moderate operational resilience issue. It does not indicate data compromise, but affected Linux systems can crash under specific PCIe enumeration conditions. Patch through normal kernel update channels, with faster handling for critical servers showing PCI bridge errors.

Technical view

The bug is a CWE-476 NULL pointer dereference in PCI/bwctrl. If no pci_bus is allocated for a bridge, pci_dev.subordinate remains NULL, but pcie_bwnotif_probe can reach pcie_update_link_speed without checking it. The fix errors out when subordinate is absent, mirroring PCIe hotplug handling.

Likely exposure

Exposure is limited to Linux systems running affected kernel versions with PCIe bridge enumeration problems caused by missing firmware-assigned bus numbers. The CVSS vector is local, low complexity, low privileges, no user interaction, and availability-only impact.

Exploitation context

The provided sources do not show active exploitation, and KEV is false. The described failure is local and availability-focused: a privileged local context or local device-enumeration condition could trigger a kernel NULL pointer dereference, causing a crash or denial of service.

Researcher notes

Evidence supports a narrow NULL dereference in Linux PCIe bandwidth notification probing. The source text names affected code paths and user-visible messages, but does not provide exploit details, affected distributions, or independent exploitation reports.

Mitigation direction

  • Update to a vendor kernel containing the referenced stable Linux fixes.
  • Prioritize affected Linux hosts where availability matters or PCIe bridge errors appear in logs.
  • Check distribution advisories before applying kernel updates in production.
  • If updates are unavailable, follow vendor guidance for temporary risk reduction.

Validation and detection

  • Inventory Linux kernel versions against vendor advisories for CVE-2025-22031.
  • Confirm the relevant stable fix commit is included in the running kernel package.
  • Review boot logs for PCI bridge bus assignment exhaustion messages.
  • Look for kernel NULL pointer dereference traces mentioning pcie_update_link_speed or pcie_bwnotif_probe.
Prepared
Confidence
high
Sources
5

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · low confidence lookup

CWE-476: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2025-22031 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Medium
CVSS
5.5 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
3Timeline events
1ADP providers
4Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: partial

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
5.5CVSS 3.1MediumCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H1.83.6CISA-ADP

Vulnerability scoring details

Base CVSS 3.1 score

5.5Medium
CVSS 3.1 vector shape for CVE-2025-22031Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CISA-ADPCISA ADP Vulnrichment
cvssV3_1other:ssvc
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinux665745f274870c921020f610e2c99a3b1613519b, 665745f274870c921020f610e2c99a3b1613519b, 665745f274870c921020f610e2c99a3b1613519bunaffected
LinuxLinux6.13, 0, 6.13.11, 6.14.2, 6.15affected
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-476 · source CWE mapping

NULL Pointer Dereference

NULL Pointer Dereference represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.