CVE-2025-21991
📋 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
- Linux kernel
📦 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.
🎯 Exploit Status
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
linuxPrevent microcode updates from being applied to avoid triggering the vulnerability
echo 0 > /sys/devices/system/cpu/microcode/reload
Disable UBSAN bounds checking
linuxTurn 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
- https://git.kernel.org/stable/c/18b5d857c6496b78ead2fd10001b81ae32d30cac
- https://git.kernel.org/stable/c/488ffc0cac38f203979f83634236ee53251ce593
- https://git.kernel.org/stable/c/5ac295dfccb5b015493f86694fa13a0dde4d3665
- https://git.kernel.org/stable/c/985a536e04bbfffb1770df43c6470f635a6b1073
- https://git.kernel.org/stable/c/d509c4731090ebd9bbdb72c70a2d70003ae81f4f
- https://git.kernel.org/stable/c/e3e89178a9f4a80092578af3ff3c8478f9187d59
- https://git.kernel.org/stable/c/e686349cc19e800dac8971929089ba5ff59abfb0
- https://git.kernel.org/stable/c/ec52240622c4d218d0240079b7c1d3ec2328a9f4
- https://lists.debian.org/debian-lts-announce/2025/05/msg00030.html
- https://lists.debian.org/debian-lts-announce/2025/05/msg00045.html