CVE-2025-21991

7.8 HIGH

📋 TL;DR

This CVE describes an out-of-bounds memory access vulnerability in the Linux kernel's AMD microcode loading function. It affects systems with CPU-less NUMA nodes where the kernel attempts to access per-CPU data for non-existent CPUs, potentially causing memory corruption during microcode updates. Only systems with AMD processors and specific NUMA configurations are affected.

💻 Affected Systems

Products:
  • Linux kernel
Versions: Specific affected versions not specified in CVE description; check kernel commit history for exact range
Operating Systems: Linux distributions using affected kernel versions
Default Config Vulnerable: ✅ No
Notes: Only affects AMD systems with CPU-less NUMA nodes (far memory configurations). Requires CONFIG_UBSAN_BOUNDS=y to trigger bounds checking.

📦 What is this software?

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

Linux Kernel by Linux

The Linux Kernel is the core component of the Linux operating system, serving as the critical interface between computer hardware and software processes. As the heart of millions of servers, cloud infrastructure, embedded systems, Android devices, and IoT deployments worldwide, the Linux Kernel mana...

Learn more about Linux Kernel →

⚠️ Risk & Real-World Impact

🔴

Worst Case

Memory corruption during microcode update could lead to kernel panic, system instability, or data corruption.

🟠

Likely Case

System crash or instability when attempting to apply microcode updates on affected configurations.

🟢

If Mitigated

No security impact since microcode updates require root privileges, but potential reliability issues remain.

🌐 Internet-Facing: LOW - This vulnerability requires local root access and specific hardware configuration.
🏢 Internal Only: LOW - Requires privileged access and specific AMD NUMA configurations.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: NO
Unauthenticated Exploit: ✅ No
Complexity: HIGH

Exploitation requires root privileges to trigger microcode updates and specific hardware configuration. Primarily a reliability issue rather than security vulnerability.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Kernel versions with commits: 18b5d857c6496b78ead2fd10001b81ae32d30cac, 488ffc0cac38f203979f83634236ee53251ce593, 5ac295dfccb5b015493f86694fa13a0dde4d3665, 985a536e04bbfffb1770df43c6470f635a6b1073, d509c4731090ebd9bbdb72c70a2d70003ae81f4f

Vendor Advisory: https://git.kernel.org/stable/c/18b5d857c6496b78ead2fd10001b81ae32d30cac

Restart Required: Yes

Instructions:

1. Update Linux kernel to patched version. 2. Check distribution security advisories for backported fixes. 3. Reboot system after kernel update.

🔧 Temporary Workarounds

Disable microcode updates

linux

Prevent microcode updates from being applied to avoid triggering the vulnerability

echo 0 > /sys/devices/system/cpu/microcode/reload

Disable UBSAN bounds checking

linux

Turn off bounds checking to avoid detection (not recommended for security)

Remove CONFIG_UBSAN_BOUNDS=y from kernel configuration

🧯 If You Can't Patch

  • Avoid applying microcode updates on affected AMD systems
  • Monitor system logs for UBSAN array-index-out-of-bounds errors

🔍 How to Verify

Check if Vulnerable:

Check kernel version and if system has AMD processors with CPU-less NUMA nodes. Look for UBSAN errors in dmesg.

Check Version:

uname -r

Verify Fix Applied:

Verify kernel version includes the fix commits. Test microcode update functionality.

📡 Detection & Monitoring

Log Indicators:

  • UBSAN: array-index-out-of-bounds in arch/x86/kernel/cpu/microcode/amd.c
  • Kernel panic during microcode updates

Network Indicators:

  • None - local vulnerability only

SIEM Query:

source="kernel" AND "UBSAN" AND "array-index-out-of-bounds" AND "microcode/amd.c"

🔗 References

📤 Share & Export