vulnerability

Ubuntu: (Multiple Advisories) (CVE-2025-21991): Linux kernel vulnerabilities

Severity
7
CVSS
(AV:L/AC:L/Au:S/C:C/I:C/A:C)
Published
Apr 2, 2025
Added
Jun 20, 2025
Modified
Oct 16, 2025

Description

In the Linux kernel, the following vulnerability has been resolved:

x86/microcode/AMD: Fix out-of-bounds on systems with CPU-less NUMA nodes

Currently, load_microcode_amd() iterates over all NUMA nodes, retrieves their
CPU masks and unconditionally accesses per-CPU data for the first CPU of each
mask.

According to Documentation/admin-guide/mm/numaperf.rst:

"Some memory may share the same node as a CPU, and others are provided as
memory only nodes."

Therefore, some node CPU masks may be empty and wouldn't have a "first CPU".

On a machine with far memory (and therefore CPU-less NUMA nodes):
- cpumask_of_node(nid) is 0
- cpumask_first(0) is CONFIG_NR_CPUS
- cpu_data(CONFIG_NR_CPUS) accesses the cpu_info per-CPU array at an
index that is 1 out of bounds

This does not have any security implications since flashing microcode is
a privileged operation but I believe this has reliability implications by
potentially corrupting memory while flashing a microcode update.

When booting with CONFIG_UBSAN_BOUNDS=y on an AMD machine that flashes
a microcode update. I get the following splat:

UBSAN: array-index-out-of-bounds in arch/x86/kernel/cpu/microcode/amd.c:X:Y
index 512 is out of range for type 'unsigned long[512]'
[...]
Call Trace:
dump_stack
__ubsan_handle_out_of_bounds
load_microcode_amd
request_microcode_amd
reload_store
kernfs_fop_write_iter
vfs_write
ksys_write
do_syscall_64
entry_SYSCALL_64_after_hwframe

Change the loop to go over only NUMA nodes which have CPUs before determining
whether the first CPU on the respective node needs microcode update.

[ bp: Massage commit message, fix typo. ]

Solutions

ubuntu-upgrade-linux-image-5-15-0-1028-nvidia-tegra-igxubuntu-upgrade-linux-image-5-15-0-1028-nvidia-tegra-igx-rtubuntu-upgrade-linux-image-5-15-0-1039-nvidia-tegraubuntu-upgrade-linux-image-5-15-0-1039-nvidia-tegra-rtubuntu-upgrade-linux-image-5-15-0-1050-xilinx-zynqmpubuntu-upgrade-linux-image-5-15-0-1068-gkeopubuntu-upgrade-linux-image-5-15-0-1078-ibmubuntu-upgrade-linux-image-5-15-0-1079-intel-iot-realtimeubuntu-upgrade-linux-image-5-15-0-1080-nvidiaubuntu-upgrade-linux-image-5-15-0-1080-nvidia-lowlatencyubuntu-upgrade-linux-image-5-15-0-1080-raspiubuntu-upgrade-linux-image-5-15-0-1081-intel-iotgubuntu-upgrade-linux-image-5-15-0-1082-kvmubuntu-upgrade-linux-image-5-15-0-1083-gkeubuntu-upgrade-linux-image-5-15-0-1083-intel-iotgubuntu-upgrade-linux-image-5-15-0-1083-oracleubuntu-upgrade-linux-image-5-15-0-1085-gcpubuntu-upgrade-linux-image-5-15-0-1085-gcp-fipsubuntu-upgrade-linux-image-5-15-0-1086-awsubuntu-upgrade-linux-image-5-15-0-1086-aws-64kubuntu-upgrade-linux-image-5-15-0-1086-aws-fipsubuntu-upgrade-linux-image-5-15-0-1086-realtimeubuntu-upgrade-linux-image-5-15-0-1091-azureubuntu-upgrade-linux-image-5-15-0-1091-azure-fipsubuntu-upgrade-linux-image-5-15-0-142-fipsubuntu-upgrade-linux-image-5-15-0-142-genericubuntu-upgrade-linux-image-5-15-0-142-generic-64kubuntu-upgrade-linux-image-5-15-0-142-generic-lpaeubuntu-upgrade-linux-image-5-15-0-142-lowlatencyubuntu-upgrade-linux-image-5-15-0-142-lowlatency-64kubuntu-upgrade-linux-image-5-4-0-1051-iotubuntu-upgrade-linux-image-5-4-0-1065-xilinx-zynqmpubuntu-upgrade-linux-image-5-4-0-1093-ibmubuntu-upgrade-linux-image-5-4-0-1106-bluefieldubuntu-upgrade-linux-image-5-4-0-1121-fipsubuntu-upgrade-linux-image-5-4-0-1130-raspiubuntu-upgrade-linux-image-5-4-0-1134-kvmubuntu-upgrade-linux-image-5-4-0-1145-oracleubuntu-upgrade-linux-image-5-4-0-1147-awsubuntu-upgrade-linux-image-5-4-0-1147-aws-fipsubuntu-upgrade-linux-image-5-4-0-1150-gcpubuntu-upgrade-linux-image-5-4-0-1150-gcp-fipsubuntu-upgrade-linux-image-5-4-0-1152-azureubuntu-upgrade-linux-image-5-4-0-1153-azure-fipsubuntu-upgrade-linux-image-5-4-0-218-genericubuntu-upgrade-linux-image-5-4-0-218-generic-lpaeubuntu-upgrade-linux-image-5-4-0-218-lowlatencyubuntu-upgrade-linux-image-6-11-0-1011-realtimeubuntu-upgrade-linux-image-6-11-0-1014-raspiubuntu-upgrade-linux-image-6-11-0-1015-awsubuntu-upgrade-linux-image-6-11-0-1015-lowlatencyubuntu-upgrade-linux-image-6-11-0-1015-lowlatency-64kubuntu-upgrade-linux-image-6-11-0-1016-gcpubuntu-upgrade-linux-image-6-11-0-1016-gcp-64kubuntu-upgrade-linux-image-6-11-0-1017-oracleubuntu-upgrade-linux-image-6-11-0-1017-oracle-64kubuntu-upgrade-linux-image-6-11-0-1018-azureubuntu-upgrade-linux-image-6-11-0-1018-azure-fdeubuntu-upgrade-linux-image-6-11-0-1024-oemubuntu-upgrade-linux-image-6-11-0-28-genericubuntu-upgrade-linux-image-6-11-0-28-generic-64kubuntu-upgrade-linux-image-6-8-0-1023-gkeopubuntu-upgrade-linux-image-6-8-0-1025-azure-nvidiaubuntu-upgrade-linux-image-6-8-0-1036-azureubuntu-upgrade-linux-image-6-8-0-1036-azure-fdeubuntu-upgrade-linux-image-6-8-0-1036-gkeubuntu-upgrade-linux-image-6-8-0-1036-gke-64kubuntu-upgrade-linux-image-6-8-0-1037-ibmubuntu-upgrade-linux-image-6-8-0-1037-oracleubuntu-upgrade-linux-image-6-8-0-1037-oracle-64kubuntu-upgrade-linux-image-6-8-0-1038-azureubuntu-upgrade-linux-image-6-8-0-1038-azure-fdeubuntu-upgrade-linux-image-6-8-0-1039-awsubuntu-upgrade-linux-image-6-8-0-1039-aws-64kubuntu-upgrade-linux-image-6-8-0-1039-nvidiaubuntu-upgrade-linux-image-6-8-0-1039-nvidia-64kubuntu-upgrade-linux-image-6-8-0-1039-nvidia-lowlatencyubuntu-upgrade-linux-image-6-8-0-1039-nvidia-lowlatency-64kubuntu-upgrade-linux-image-6-8-0-1039-raspiubuntu-upgrade-linux-image-6-8-0-1040-gcpubuntu-upgrade-linux-image-6-8-0-1040-gcp-64kubuntu-upgrade-linux-image-6-8-0-2031-raspi-realtimeubuntu-upgrade-linux-image-6-8-0-84-genericubuntu-upgrade-linux-image-6-8-0-84-generic-64kubuntu-upgrade-linux-image-6-8-0-84-lowlatencyubuntu-upgrade-linux-image-6-8-0-84-lowlatency-64kubuntu-upgrade-linux-image-6-8-0-85-genericubuntu-upgrade-linux-image-6-8-0-85-generic-64kubuntu-upgrade-linux-image-6-8-1-1034-realtimeubuntu-upgrade-linux-image-awsubuntu-upgrade-linux-image-aws-6-8ubuntu-upgrade-linux-image-aws-64kubuntu-upgrade-linux-image-aws-64k-6-8ubuntu-upgrade-linux-image-aws-64k-lts-22-04ubuntu-upgrade-linux-image-aws-64k-lts-24-04ubuntu-upgrade-linux-image-aws-fipsubuntu-upgrade-linux-image-aws-lts-20-04ubuntu-upgrade-linux-image-aws-lts-22-04ubuntu-upgrade-linux-image-aws-lts-24-04ubuntu-upgrade-linux-image-azureubuntu-upgrade-linux-image-azure-6-11ubuntu-upgrade-linux-image-azure-6-8ubuntu-upgrade-linux-image-azure-cvmubuntu-upgrade-linux-image-azure-fdeubuntu-upgrade-linux-image-azure-fde-6-11ubuntu-upgrade-linux-image-azure-fde-6-8ubuntu-upgrade-linux-image-azure-fde-edgeubuntu-upgrade-linux-image-azure-fde-lts-24-04ubuntu-upgrade-linux-image-azure-fipsubuntu-upgrade-linux-image-azure-lts-20-04ubuntu-upgrade-linux-image-azure-lts-22-04ubuntu-upgrade-linux-image-azure-lts-24-04ubuntu-upgrade-linux-image-azure-nvidiaubuntu-upgrade-linux-image-azure-nvidia-6-8ubuntu-upgrade-linux-image-azure-nvidia-lts-24-04ubuntu-upgrade-linux-image-bluefieldubuntu-upgrade-linux-image-fipsubuntu-upgrade-linux-image-gcpubuntu-upgrade-linux-image-gcp-6-8ubuntu-upgrade-linux-image-gcp-64kubuntu-upgrade-linux-image-gcp-64k-6-8ubuntu-upgrade-linux-image-gcp-64k-lts-24-04ubuntu-upgrade-linux-image-gcp-fipsubuntu-upgrade-linux-image-gcp-lts-20-04ubuntu-upgrade-linux-image-gcp-lts-22-04ubuntu-upgrade-linux-image-gcp-lts-24-04ubuntu-upgrade-linux-image-genericubuntu-upgrade-linux-image-generic-6-8ubuntu-upgrade-linux-image-generic-64kubuntu-upgrade-linux-image-generic-64k-6-8ubuntu-upgrade-linux-image-generic-64k-hwe-20-04ubuntu-upgrade-linux-image-generic-64k-hwe-22-04ubuntu-upgrade-linux-image-generic-64k-hwe-24-04ubuntu-upgrade-linux-image-generic-hwe-18-04ubuntu-upgrade-linux-image-generic-hwe-20-04ubuntu-upgrade-linux-image-generic-hwe-22-04ubuntu-upgrade-linux-image-generic-hwe-24-04ubuntu-upgrade-linux-image-generic-lpaeubuntu-upgrade-linux-image-generic-lpae-hwe-20-04ubuntu-upgrade-linux-image-gkeubuntu-upgrade-linux-image-gke-5-15ubuntu-upgrade-linux-image-gke-6-8ubuntu-upgrade-linux-image-gke-64kubuntu-upgrade-linux-image-gke-64k-6-8ubuntu-upgrade-linux-image-gkeopubuntu-upgrade-linux-image-gkeop-5-15ubuntu-upgrade-linux-image-gkeop-6-8ubuntu-upgrade-linux-image-ibmubuntu-upgrade-linux-image-ibm-6-8ubuntu-upgrade-linux-image-ibm-classicubuntu-upgrade-linux-image-ibm-lts-20-04ubuntu-upgrade-linux-image-ibm-lts-24-04ubuntu-upgrade-linux-image-intelubuntu-upgrade-linux-image-intel-iot-realtimeubuntu-upgrade-linux-image-intel-iotgubuntu-upgrade-linux-image-intel-iotg-5-15ubuntu-upgrade-linux-image-kvmubuntu-upgrade-linux-image-lowlatencyubuntu-upgrade-linux-image-lowlatency-6-11ubuntu-upgrade-linux-image-lowlatency-6-8ubuntu-upgrade-linux-image-lowlatency-64kubuntu-upgrade-linux-image-lowlatency-64k-6-11ubuntu-upgrade-linux-image-lowlatency-64k-6-8ubuntu-upgrade-linux-image-lowlatency-64k-hwe-20-04ubuntu-upgrade-linux-image-lowlatency-64k-hwe-22-04ubuntu-upgrade-linux-image-lowlatency-64k-hwe-24-04ubuntu-upgrade-linux-image-lowlatency-hwe-18-04ubuntu-upgrade-linux-image-lowlatency-hwe-20-04ubuntu-upgrade-linux-image-lowlatency-hwe-22-04ubuntu-upgrade-linux-image-lowlatency-hwe-24-04ubuntu-upgrade-linux-image-nvidiaubuntu-upgrade-linux-image-nvidia-6-8ubuntu-upgrade-linux-image-nvidia-64kubuntu-upgrade-linux-image-nvidia-64k-6-8ubuntu-upgrade-linux-image-nvidia-64k-hwe-22-04ubuntu-upgrade-linux-image-nvidia-hwe-22-04ubuntu-upgrade-linux-image-nvidia-lowlatencyubuntu-upgrade-linux-image-nvidia-lowlatency-6-8ubuntu-upgrade-linux-image-nvidia-lowlatency-64kubuntu-upgrade-linux-image-nvidia-lowlatency-64k-6-8ubuntu-upgrade-linux-image-nvidia-tegraubuntu-upgrade-linux-image-nvidia-tegra-igxubuntu-upgrade-linux-image-nvidia-tegra-igx-rtubuntu-upgrade-linux-image-nvidia-tegra-rtubuntu-upgrade-linux-image-oemubuntu-upgrade-linux-image-oem-20-04ubuntu-upgrade-linux-image-oem-20-04bubuntu-upgrade-linux-image-oem-20-04cubuntu-upgrade-linux-image-oem-20-04dubuntu-upgrade-linux-image-oem-22-04ubuntu-upgrade-linux-image-oem-22-04aubuntu-upgrade-linux-image-oem-22-04bubuntu-upgrade-linux-image-oem-22-04cubuntu-upgrade-linux-image-oem-22-04dubuntu-upgrade-linux-image-oem-24-04bubuntu-upgrade-linux-image-oem-osp1ubuntu-upgrade-linux-image-oracleubuntu-upgrade-linux-image-oracle-6-8ubuntu-upgrade-linux-image-oracle-64kubuntu-upgrade-linux-image-oracle-64k-6-8ubuntu-upgrade-linux-image-oracle-64k-lts-24-04ubuntu-upgrade-linux-image-oracle-lts-20-04ubuntu-upgrade-linux-image-oracle-lts-22-04ubuntu-upgrade-linux-image-oracle-lts-24-04ubuntu-upgrade-linux-image-raspiubuntu-upgrade-linux-image-raspi-6-8ubuntu-upgrade-linux-image-raspi-hwe-18-04ubuntu-upgrade-linux-image-raspi-nolpaeubuntu-upgrade-linux-image-raspi-realtimeubuntu-upgrade-linux-image-raspi-realtime-6-8ubuntu-upgrade-linux-image-raspi2ubuntu-upgrade-linux-image-realtimeubuntu-upgrade-linux-image-realtime-6-8-1ubuntu-upgrade-linux-image-realtime-hwe-22-04ubuntu-upgrade-linux-image-snapdragon-hwe-18-04ubuntu-upgrade-linux-image-virtualubuntu-upgrade-linux-image-virtual-6-8ubuntu-upgrade-linux-image-virtual-hwe-18-04ubuntu-upgrade-linux-image-virtual-hwe-20-04ubuntu-upgrade-linux-image-virtual-hwe-22-04ubuntu-upgrade-linux-image-virtual-hwe-24-04ubuntu-upgrade-linux-image-xilinx-zynqmp

References

    Title
    NEW

    Explore Exposure Command

    Confidently identify and prioritize exposures from endpoint to cloud with full attack surface visibility and threat-aware risk context.