Linux kernel
cpe:2.3:a:linux:linux_kernel:*:*:*:*:*:*:*, +4 more
A vulnerability in the Linux kernel's handling of uncore die IDs has been addressed. The issue arose in the 'snbep_pci2phy_map_init()' function, specifically when the number of node IDs exceeded eight. In this scenario, the 'uncore_device_to_die()' function could incorrectly return -1 if all CPUs linked to the UBOX device were offline. This mismanagement was due to a WARN_ON_ONCE check that disrupted the device scanning process, potentially causing the omission of other UBOX devices. Additionally, when NUMA was disabled on platforms that supported it, the 'pcibus_to_node()' function would return 'Numa_NO_NODE', leading 'uncore_device_to_die()' to fail for all PCI devices. Consequently, the 'spr_update_device_location()' function, relevant for Intel SPR and EMR, overlooked certain PMON units. The vulnerability has been fixed by modifying the die ID retrieval process to rely on the UBOX GIDNIDMAP register, ensuring accurate topology mapping regardless of NUMA settings. This adjustment required integrating the 'snbep_pci2phy_map_init()' function into the 'spr_uncore_pci_init()' routine, while retaining the original 'uncore_device_to_die()' function only for cases with more than eight node IDs, where NUMA is expected to be active.
The vulnerability could lead to improper management of uncore device locations, causing certain performance monitoring units to be ignored during system monitoring processes, particularly on Intel SPR and EMR platforms.
Users can apply the latest patches from the Linux kernel stable tree to address this vulnerability. The specific commit containing the fix can be downloaded as a tarball.
Our algorithm analyzes dozens of metrics to generate these 8 key vulnerability categories, which are then combined to calculate the overall risk score.