CVE-2022-50296 in Linux
Summary
by MITRE • 09/15/2025
In the Linux kernel, the following vulnerability has been resolved:
UM: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK
When CONFIG_CPUMASK_OFFSTACK and CONFIG_DEBUG_PER_CPU_MAPS is selected, cpu_max_bits_warn() generates a runtime warning similar as below while we show /proc/cpuinfo. Fix this by using nr_cpu_ids (the runtime limit) instead of NR_CPUS to iterate CPUs.
[ 3.052463] ------------[ cut here ]------------
[ 3.059679] WARNING: CPU: 3 PID: 1 at include/linux/cpumask.h:108 show_cpuinfo+0x5e8/0x5f0
[ 3.070072] Modules linked in: efivarfs autofs4
[ 3.076257] CPU: 0 PID: 1 Comm: systemd Not tainted 5.19-rc5+ #1052
[ 3.099465] Stack : 9000000100157b08 9000000000f18530 9000000000cf846c 9000000100154000
[ 3.109127] 9000000100157a50 0000000000000000 9000000100157a58 9000000000ef7430
[ 3.118774] 90000001001578e8 0000000000000040 0000000000000020 ffffffffffffffff
[ 3.128412] 0000000000aaaaaa 1ab25f00eec96a37 900000010021de80 900000000101c890
[ 3.138056] 0000000000000000 0000000000000000 0000000000000000 0000000000aaaaaa
[ 3.147711] ffff8000339dc220 0000000000000001 0000000006ab4000 0000000000000000
[ 3.157364] 900000000101c998 0000000000000004 9000000000ef7430 0000000000000000
[ 3.167012] 0000000000000009 000000000000006c 0000000000000000 0000000000000000
[ 3.176641] 9000000000d3de08 9000000001639390 90000000002086d8 00007ffff0080286
[ 3.186260] 00000000000000b0 0000000000000004 0000000000000000 0000000000071c1c
[ 3.195868] ...
[ 3.199917] Call Trace:
[ 3.203941] [<90000000002086d8>] show_stack+0x38/0x14c
[ 3.210666] [<9000000000cf846c>] dump_stack_lvl+0x60/0x88
[ 3.217625] [<900000000023d268>] __warn+0xd0/0x100
[ 3.223958] [<9000000000cf3c90>] warn_slowpath_fmt+0x7c/0xcc
[ 3.231150] [<9000000000210220>] show_cpuinfo+0x5e8/0x5f0
[ 3.238080] [<90000000004f578c>] seq_read_iter+0x354/0x4b4
[ 3.245098] [<90000000004c2e90>] new_sync_read+0x17c/0x1c4
[ 3.252114] [<90000000004c5174>] vfs_read+0x138/0x1d0
[ 3.258694] [<90000000004c55f8>] ksys_read+0x70/0x100
[ 3.265265] [<9000000000cfde9c>] do_syscall+0x7c/0x94
[ 3.271820] [<9000000000202fe4>] handle_syscall+0xc4/0x160
[ 3.281824] ---[ end trace 8b484262b4b8c24c ]---
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.
Analysis
by VulDB Data Team • 01/10/2026
This vulnerability exists within the Linux kernel's handling of CPU information display when specific kernel configuration options are enabled. The issue manifests as a runtime warning generated during the processing of /proc/cpuinfo, which occurs when both CONFIG_CPUMASK_OFFSTACK and CONFIG_DEBUG_PER_CPU_MAPS are enabled in the kernel configuration. The warning originates from the cpu_max_bits_warn() function within the cpumask.h header file, specifically at line 108 in the show_cpuinfo function, indicating a mismatch between expected and actual CPU mask handling during system information retrieval.
The technical flaw stems from improper iteration logic within the kernel's CPU information processing code. When CONFIG_CPUMASK_OFFSTACK is enabled, the kernel uses a dynamic CPU mask allocation approach rather than a static one. However, the code incorrectly utilizes NR_CPUS as the iteration limit instead of nr_cpu_ids, which represents the actual runtime limit of available CPUs. This mismatch causes the kernel to attempt to process CPU identifiers beyond the actual system configuration, leading to the warning message and potential instability during system information queries.
The operational impact of this vulnerability is primarily centered around system diagnostics and monitoring operations. When administrators or system processes query /proc/cpuinfo, particularly in environments where the affected kernel configuration options are active, the warning message appears in kernel logs, potentially causing false alarms in monitoring systems. While the vulnerability does not directly compromise system security or allow privilege escalation, it does indicate a potential for more serious issues if the CPU mask handling logic fails during critical system operations. The warning could also mask other legitimate issues in system diagnostics and may affect automated monitoring tools that flag any kernel warnings as potential problems.
The fix for this vulnerability involves modifying the iteration logic to use nr_cpu_ids instead of NR_CPUS when processing CPU information in the cpuinfo display functionality. This ensures that the kernel only iterates through the actual number of CPUs available in the system rather than the compile-time maximum. This change aligns with the kernel's design principles for handling dynamic CPU configurations and maintains consistency with the intended behavior of CONFIG_CPUMASK_OFFSTACK. The fix follows established kernel development practices for handling per-CPU data structures and addresses the fundamental mismatch between compile-time and runtime CPU capacity definitions.
This vulnerability aligns with CWE-129, which addresses improper validation of array indices, and relates to the broader category of kernel memory safety issues. The warning generation mechanism demonstrates a failure in proper bounds checking within the kernel's CPU information subsystem. From an ATT&CK perspective, this vulnerability could potentially be leveraged in reconnaissance activities by attackers seeking to identify kernel versions and configuration options, though it does not directly enable privilege escalation or other malicious activities. The vulnerability also connects to the broader category of kernel stability issues that can affect system availability, particularly in high-availability environments where continuous system monitoring is critical.