CVE-2024-58093
Vulnerability Summary
Timeline
Description
In the Linux kernel, the following vulnerability has been resolved: PCI/ASPM: Fix link state exit during switch upstream function removal Before 456d8aa37d0f ("PCI/ASPM: Disable ASPM on MFD function removal to avoid use-after-free"), we would free the ASPM link only after the last function on the bus pertaining to the given link was removed. That was too late. If function 0 is removed before sibling function, link->downstream would point to free'd memory after. After above change, we freed the ASPM parent link state upon any function removal on the bus pertaining to a given link. That is too early. If the link is to a PCIe switch with MFD on the upstream port, then removing functions other than 0 first would free a link which still remains parent_link to the remaining downstream ports. The resulting GPFs are especially frequent during hot-unplug, because pciehp removes devices on the link bus in reverse order. On that switch, function 0 is the virtual P2P bridge to the internal bus. Free exactly when function 0 is removed -- before the parent link is obsolete, but after all subordinate links are gone. [kwilczynski: commit log]
CVSS Metrics
- v3.1•HIGH•Score: 7.8CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
EPSS Trends
Current EPSS score: 0.02%• Percentile: 5%
Techniques & Countermeasures
- CWE-416•Use After Free
The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory "belongs" to the code that operates on the new pointer.
Affected Systems
- linux•linux
≥ 456d8aa37d0f56fc9e985e812496e861dcd6f2f2, < cbf937dcadfd571a434f8074d057b32cd14fbea5 | 666e7f9d60cee23077ea3e6331f6f8a19f7ea03f | 7badf4d6f49a358a01ab072bbff88d3ee886c33b | 9856c0de49052174ab474113f4ba40c02aaee086 | 7aecdd47910c51707696e8b0e045b9f88bd4230f | d51d2eeae4ce54d542909c4d9d07bf371a78592c | 4203722d51afe3d239e03f15cc73efdf023a7103 | ≥ 5.4.251, < 5.5 | ≥ 5.10.188, < 5.11 | ≥ 5.15.121, < 5.16 | ≥ 6.1.39, < 6.2 | ≥ 6.3.13, < 6.4 | ≥ 6.4.4, < 6.5 | 6.5
- linux•linux_kernel
≥ 5.4.251, < 5.5 | ≥ 5.10.188, < 5.11 | ≥ 5.15.121, < 5.16 | ≥ 6.1.39, < 6.2 | ≥ 6.3.13, < 6.4 | ≥ 6.4.4, < 6.15