DF-2324
Capability list traversal lacks cycle detection - infinite loop DoS from malicious device with circular capability chain
Summary
Both capability-list walkers - pci_read_capabilities() (:877 during device enumeration) and pci_find_extcap_method() (:1407 called by drivers via pci_find_extcap) - loop on device-controlled next pointer values without cycle detection or iteration cap. Malicious PCIe device returning non-zero next pointer forming cycle (e.g. cap at 0x40 -> next=0x60 cap at 0x60 -> next=0x40) hangs kernel indefinitely in tight config-space read loop. pci_find_extcap_method worse: no alignment or minimum-offset sanitization that pci_fixup_nextptr provides. pci_find_extcap reachable from any driver calling pci_find_extcap(dev cap &ptr). System hangs during boot or hotplug enumeration.
No comments yet.