CVE-2015-2666
NoneCVSS
—
EPSS
0.4%
Published
May 27, 2015
CISA due date
—
Cloudanix analysis
Older Linux computers could be fully taken over by someone who already has high-level access if they tamper with a startup file.
- Exploitation
- Local Privilege
- Attacker needs
- High Privilege
- Complexity
- Moderate
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The vulnerability is a stack-based buffer overflow in the get_matching_model_microcode function that processes microcode headers from the initrd, enabling local privilege escalation when an attacker has root write access to construct a malicious header.
Why it matters to the business
Attackers with existing local root access can achieve full system compromise on unpatched legacy Linux systems, risking data theft or persistent control; the issue is over a decade old with low exploitability so impact is largely limited to outdated environments that have not been upgraded.
How an attack unfolds
An attacker first obtains root privileges, then plants a crafted microcode header inside the initrd image; on subsequent boot the kernel's early microcode loader triggers the overflow during header parsing and executes attacker-controlled code with kernel privileges.
How to fix it
Upgrade the Linux kernel to version 4.0 or later on all affected distributions; rebuild and reinstall the initrd after the update.
How to confirm the fix worked
Confirm the running kernel version is 4.0 or newer, then verify that microcode loading completes without crashes when a malformed header is present in the initrd.
Typical attack path
- Obtain local root access on the target host
- Write a malicious microcode header into the initrd
- Trigger kernel boot or microcode reload to reach the vulnerable function
- Execute arbitrary code via the resulting stack overflow
How to detect it
Review boot logs for microcode-related crashes or unexpected privilege changes, and inspect initrd contents on any remaining unpatched systems for signs of unauthorized modification.
What your security team should do
- Immediately upgrade all systems still running kernels older than 4.0
- Audit and restrict root-level write access to initrd images
- Remove or isolate any remaining legacy systems that cannot be patched
The record
Stack-based buffer overflow in the get_matching_model_microcode function in arch/x86/kernel/cpu/microcode/intel_early.c in the Linux kernel before 4.0 allows context-dependent attackers to gain privileges by constructing a crafted microcode header and leveraging root privileges for write access to the initrd.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | linux | 0 | 3.16.7-ckt9-1 |
| Debian:12 | linux | 0 | 3.16.7-ckt9-1 |
| Debian:13 | linux | 0 | 3.16.7-ckt9-1 |
| Red Hat:enterprise_linux:7::client | kernel | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-abi-whitelists | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-bootwrapper | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debug | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debug-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debug-devel | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debuginfo-common-ppc64 | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debuginfo-common-s390x | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-debuginfo-common-x86_64 | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-devel | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-doc | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-headers | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-kdump | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-kdump-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-kdump-devel | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-tools | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-tools-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-tools-libs | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | kernel-tools-libs-devel | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | perf | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | perf-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | python-perf | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::client | python-perf-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-abi-whitelists | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-bootwrapper | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debug | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debug-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debug-devel | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debuginfo-common-ppc64 | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debuginfo-common-s390x | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-debuginfo-common-x86_64 | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-devel | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-doc | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-headers | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-kdump | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-kdump-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-kdump-devel | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-tools | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-tools-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-tools-libs | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | kernel-tools-libs-devel | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | perf | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | perf-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | python-perf | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::computenode | python-perf-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::server | kernel-abi-whitelists | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::server | kernel-bootwrapper | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::server | kernel-debug | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::server | kernel-debug-debuginfo | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::server | kernel-debug-devel | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::server | kernel-debuginfo | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::server | kernel-debuginfo-common-ppc64 | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-debuginfo-common-ppc64le | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::server | kernel-debuginfo-common-s390x | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-debuginfo-common-x86_64 | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-devel | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::server | kernel-doc | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::server | kernel-headers | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::server | kernel-kdump | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-kdump-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-kdump-devel | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::server | kernel-tools | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::server | kernel-tools-debuginfo | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::server | kernel-tools-libs | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::server | kernel-tools-libs-devel | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::server | perf | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::server | perf-debuginfo | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::server | python-perf | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::server | python-perf-debuginfo | 0 | 0:3.10.0-229.11.1.ael7b |
| Red Hat:enterprise_linux:7::workstation | kernel | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-abi-whitelists | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-bootwrapper | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debug | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debug-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debug-devel | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debuginfo-common-ppc64 | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debuginfo-common-s390x | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-debuginfo-common-x86_64 | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-devel | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-doc | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-headers | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-kdump | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-kdump-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-kdump-devel | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-tools | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-tools-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-tools-libs | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | kernel-tools-libs-devel | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | perf | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | perf-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | python-perf | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:enterprise_linux:7::workstation | python-perf-debuginfo | 0 | 0:3.10.0-229.11.1.el7 |
| Red Hat:rhel_extras_rt:7 | kernel-rt | 0 | 0:3.10.0-229.11.1.rt56.141.11.el7_1 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-debug | 0 | 0:3.10.0-229.11.1.rt56.141.11.el7_1 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-debug-debuginfo | 0 | 0:3.10.0-229.11.1.rt56.141.11.el7_1 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-debug-devel | 0 | 0:3.10.0-229.11.1.rt56.141.11.el7_1 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-debuginfo | 0 | 0:3.10.0-229.11.1.rt56.141.11.el7_1 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-debuginfo-common-x86_64 | 0 | 0:3.10.0-229.11.1.rt56.141.11.el7_1 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-devel | 0 | 0:3.10.0-229.11.1.rt56.141.11.el7_1 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-doc | 0 | 0:3.10.0-229.11.1.rt56.141.11.el7_1 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-trace | 0 | 0:3.10.0-229.11.1.rt56.141.11.el7_1 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-trace-debuginfo | 0 | 0:3.10.0-229.11.1.rt56.141.11.el7_1 |
| Red Hat:rhel_extras_rt:7 | kernel-rt-trace-devel | 0 | 0:3.10.0-229.11.1.rt56.141.11.el7_1 |
| SUSE:Linux Enterprise Desktop 12 | kernel-default | 0 | 3.12.43-52.6.1 |
| SUSE:Linux Enterprise Desktop 12 | kernel-source | 0 | 3.12.43-52.6.1 |
| SUSE:Linux Enterprise Desktop 12 | kernel-syms | 0 | 3.12.43-52.6.1 |
| SUSE:Linux Enterprise Desktop 12 | kernel-xen | 0 | 3.12.43-52.6.1 |
| SUSE:Linux Enterprise Live Patching 12 | kgraft-patch-SLE12_Update_5 | 0 | 1-2.3 |
| SUSE:Linux Enterprise Module for Public Cloud 12 | kernel-ec2 | 0 | 3.12.43-52.6.1 |
| SUSE:Linux Enterprise Server 12 | kernel-default | 0 | 3.12.43-52.6.1 |
| SUSE:Linux Enterprise Server 12 | kernel-source | 0 | 3.12.43-52.6.1 |
| SUSE:Linux Enterprise Server 12 | kernel-syms | 0 | 3.12.43-52.6.1 |
| SUSE:Linux Enterprise Server 12 | kernel-xen | 0 | 3.12.43-52.6.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-default | 0 | 3.12.43-52.6.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-source | 0 | 3.12.43-52.6.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-syms | 0 | 3.12.43-52.6.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | kernel-xen | 0 | 3.12.43-52.6.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | kernel-docs | 0 | 3.12.43-52.6.2 |
| SUSE:Linux Enterprise Software Development Kit 12 | kernel-obs-build | 0 | 3.12.43-52.6.2 |
| SUSE:Linux Enterprise Workstation Extension 12 | kernel-default | 0 | 3.12.43-52.6.1 |
| Ubuntu:14.04:LTS | linux | 0 | 3.13.0-51.84 |
| Ubuntu:14.04:LTS | linux-lts-utopic | 0 | 3.16.0-36.48~14.04.1 |
| Ubuntu:14.04:LTS | linux-lts-vivid | 0 | 3.19.0-18.18~14.04.1 |
Related vulnerabilities
- CVE-2025-38562 In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix null… Also affects linux
- CVE-2025-38352 In the Linux kernel, the following vulnerability has been resolved: posix-cpu-timers: fix… Also affects linux
- CVE-2025-22037 In the Linux kernel, the following vulnerability has been resolved: ksmbd: fix null… Also affects linux
- CVE-2025-21760 In the Linux kernel, the following vulnerability has been resolved: ndisc: extend RCU… Also affects linux
- CVE-2025-21758 In the Linux kernel, the following vulnerability has been resolved: ipv6: mcast: add RCU… Also affects linux
- CVE-2025-21664 In the Linux kernel, the following vulnerability has been resolved: dm thin: make… Also affects linux
- CVE-2024-57946 In the Linux kernel, the following vulnerability has been resolved: virtio-blk: don't… Also affects linux
- CVE-2024-57945 In the Linux kernel, the following vulnerability has been resolved: riscv: mm: Fix the… Also affects linux