---
id: CVE-2026-98504
title: 'PCI: of_property: Omit bus properties without a subordinate bus'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  PCI: of_property: Omit bus properties without a subordinate bus

  A bridge (a device with a Type 1 header) may not have a secondary bus
  allocated (pdev->subordinate), e.…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 407d1a51921e9f28c1bcec647c2205925bd1fdab <
    ccd32fa3489cbe86a0b281da4447b4c7eadb3518
  - >-
    Linux >= 407d1a51921e9f28c1bcec647c2205925bd1fdab <
    a6d97d10e49ae49026ae13af6c41634fce470a37
  - >-
    Linux >= 407d1a51921e9f28c1bcec647c2205925bd1fdab <
    879c911f77b8a7862aa16079b04efc3fdc5d32ec
  - >-
    Linux >= 407d1a51921e9f28c1bcec647c2205925bd1fdab <
    aee774588abd78f75952fd34c3fa461bc46b62c2
  - >-
    Linux >= 407d1a51921e9f28c1bcec647c2205925bd1fdab <
    8805840aad73df7146778be243a196d48b4f6430
  - Linux 6.6
published: '2026-10-18'
updated: '2026-10-18'
sourceUpdated: '2026-10-18T15:17:05.274Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-98504'
references:
  - url: 'https://git.kernel.org/stable/c/ccd32fa3489cbe86a0b281da4447b4c7eadb3518'
  - url: 'https://git.kernel.org/stable/c/a6d97d10e49ae49026ae13af6c41634fce470a37'
  - url: 'https://git.kernel.org/stable/c/879c911f77b8a7862aa16079b04efc3fdc5d32ec'
  - url: 'https://git.kernel.org/stable/c/aee774588abd78f75952fd34c3fa461bc46b62c2'
  - url: 'https://git.kernel.org/stable/c/8805840aad73df7146778be243a196d48b4f6430'
tags:
  - cve.org
ingestedAt: '2026-10-18T15:45:12.287Z'
---

## Overview

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

PCI: of_property: Omit bus properties without a subordinate bus

A bridge (a device with a Type 1 header) may not have a secondary bus
allocated (pdev->subordinate), e.g., if there are no available bus numbers
or the bridge secondary/subordinate bus numbers are not writable.

The dynamic OF helpers of_pci_prop_bus_range() and of_pci_prop_intr_map()
dereference pdev->subordinate without checking it.  When
CONFIG_PCI_DYNAMIC_OF_NODES is enabled, this can cause a NULL pointer
dereference and early boot hang.

Generate 'bus-range' and 'interrupt-map' properties only when a subordinate
bus exists.  Keep the node and its remaining properties for bridges without
one.

The problem was latent since 407d1a51921e ("PCI: Create device tree node
for bridge"), but wasn't reachable until 1f340724419e ("PCI: of: Create
device tree PCI host bridge node"), which appeared in v6.15.  Before
1f340724419e, of_pci_make_dev_node() returned early because the parent OF
node was missing.

[bhelgaas: move pdev->subordinate test to callees, commit log]

## Affected

- `Linux >= 407d1a51921e9f28c1bcec647c2205925bd1fdab < ccd32fa3489cbe86a0b281da4447b4c7eadb3518`
- `Linux >= 407d1a51921e9f28c1bcec647c2205925bd1fdab < a6d97d10e49ae49026ae13af6c41634fce470a37`
- `Linux >= 407d1a51921e9f28c1bcec647c2205925bd1fdab < 879c911f77b8a7862aa16079b04efc3fdc5d32ec`
- `Linux >= 407d1a51921e9f28c1bcec647c2205925bd1fdab < aee774588abd78f75952fd34c3fa461bc46b62c2`
- `Linux >= 407d1a51921e9f28c1bcec647c2205925bd1fdab < 8805840aad73df7146778be243a196d48b4f6430`
- `Linux 6.6`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
