CyberRota Analysis
AI-GeneratedThe vulnerability in the Linux kernel affects the perf tools, specifically in the machine__resolve() function, which improperly accesses CPU topology data without adequately validating the CPU index derived from untrusted perf.data samples. This oversight can lead to out-of-bounds heap reads, potentially exposing sensitive information or causing unexpected behavior. Organizations utilizing Linux systems with perf tools should prioritize addressing this vulnerability to mitigate risks associated with untrusted input handling.
Original NVD Description
In the Linux kernel, the following vulnerability has been resolved: perf tools: Use perf_env__get_cpu_topology() in machine__resolve() machine__resolve() accesses env->cpu[al->cpu].socket_id after checking al->cpu >= 0 and env->cpu != NULL, but without validating al->cpu against env->nr_cpus_avail. Since al->cpu comes from the untrusted perf.data sample, a crafted file with a large CPU index causes an out-of-bounds heap read. Use perf_env__get_cpu_topology() which validates both NULL and bounds. Also bounds-check al->cpu before the cast to struct perf_cpu (int16_t): without this, values like 65536 silently truncate to 0, bypassing the accessor's internal check and returning CPU 0's topology.