CVE-2014-3601
NoneCVSS
—
EPSS
1.2%
Published
Sep 1, 2014
CISA due date
—
Cloudanix analysis
A bug in the Linux kernel's handling of virtual machine memory mappings lets a guest operating system crash or overload the main host computer.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- High
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Miscalculation of page counts in kvm_iommu_map_pages during IOMMU mapping failure handling allows guest-triggered large gfn values to corrupt host memory or small gfn values to permanently pin excessive host pages.
Why it matters to the business
Virtualized Linux hosts can experience crashes or resource exhaustion when untrusted guests trigger the flaw, disrupting multi-tenant environments and increasing operational risk for organizations running affected kernels.
How an attack unfolds
An attacker with guest OS access crafts IOMMU mapping requests with extreme gfn values that expose the integer miscalculation, resulting in host memory corruption or exhaustion; public exploit code has been available since disclosure.
How to fix it
Upgrade the Linux kernel on all affected hosts to a version containing the fix for the page-count miscalculation in virt/kvm/iommu.c; apply vendor-supplied updates for SUSE, Ubuntu, and other distributions as they become available.
How to confirm the fix worked
Verify running kernel versions against vendor advisories; confirm absence of the vulnerable kvm_iommu_map_pages logic via source inspection or package changelog entries.
Typical attack path
- Obtain or compromise a guest OS account with access to KVM IOMMU interfaces
- Trigger repeated IOMMU mapping operations using crafted large or small gfn values
- Cause host memory corruption leading to DoS or consumption leading to resource exhaustion
How to detect it
Review host kernel logs for IOMMU or KVM-related oops messages and unusual page pinning activity following guest interactions; correlate with guest-initiated mapping requests.
What your security team should do
- Prioritize kernel updates on all systems exposing KVM to untrusted guests
- Restrict guest access to IOMMU mapping functionality where possible
- Monitor for kernel oops or excessive memory pinning indicators on hosts
The record
The kvm_iommu_map_pages function in virt/kvm/iommu.c in the Linux kernel through 3.16.1 miscalculates the number of pages during the handling of a mapping failure, which allows guest OS users to (1) cause a denial of service (host OS memory corruption) or possibly have unspecified other impact by triggering a large gfn value or (2) cause a denial of service (host OS memory consumption) by triggering a small gfn value that leads to permanently pinned pages.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | linux | 0 | 3.16.2-1 |
| Debian:12 | linux | 0 | 3.16.2-1 |
| Debian:13 | linux | 0 | 3.16.2-1 |
| Mageia:3 | kernel | 0 | 3.10.54-2.mga3 |
| Mageia:3 | kernel | 0 | 3.10.58-1.mga3 |
| Mageia:3 | kernel-linus | 0 | 3.10.58-1.mga3 |
| Mageia:3 | kernel-tmb | 0 | 3.10.58-1.mga3 |
| Mageia:3 | kernel-userspace-headers | 0 | 3.10.54-2.mga3 |
| Mageia:3 | kernel-userspace-headers | 0 | 3.10.58-1.mga3 |
| Mageia:3 | kernel-vserver | 0 | 3.10.58-0.vs2.3.6.8.1.mga3 |
| Mageia:3 | kmod-broadcom-wl | 0 | 6.30.223.141-22.mga3.nonfree |
| Mageia:3 | kmod-broadcom-wl | 0 | 6.30.223.141-24.mga3.nonfree |
| Mageia:3 | kmod-fglrx | 0 | 13.251-12.mga3.nonfree |
| Mageia:3 | kmod-fglrx | 0 | 13.251-14.mga3.nonfree |
| Mageia:3 | kmod-nvidia-current | 0 | 319.60-22.mga3.nonfree |
| Mageia:3 | kmod-nvidia-current | 0 | 319.60-24.mga3.nonfree |
| Mageia:3 | kmod-nvidia173 | 0 | 173.14.38-36.mga3.nonfree |
| Mageia:3 | kmod-nvidia173 | 0 | 173.14.38-38.mga3.nonfree |
| Mageia:3 | kmod-nvidia304 | 0 | 304.108-22.mga3.nonfree |
| Mageia:3 | kmod-nvidia304 | 0 | 304.108-24.mga3.nonfree |
| Mageia:3 | kmod-xtables-addons | 0 | 2.3-22.mga3 |
| Mageia:3 | kmod-xtables-addons | 0 | 2.3-24.mga3 |
| Mageia:4 | kernel | 0 | 3.14.23-1.mga4 |
| Mageia:4 | kernel-linus | 0 | 3.14.23-1.mga4 |
| Mageia:4 | kernel-linus | 0 | 3.14.32-1.mga4 |
| Mageia:4 | kernel-rt | 0 | 3.14.32-0.rt28.1.mga4 |
| Mageia:4 | kernel-tmb | 0 | 3.14.23-1.mga4 |
| Mageia:4 | kernel-tmb | 0 | 3.14.32-1.mga4 |
| Mageia:4 | kernel-userspace-headers | 0 | 3.14.23-1.mga4 |
| Mageia:4 | kernel-vserver | 0 | 3.14.23-0.vs2.3.6.13.1.mga4 |
| Mageia:4 | kernel-vserver | 0 | 3.14.32-0.vs2.3.6.14.1.mga4 |
| Mageia:4 | kmod-broadcom-wl | 0 | 6.30.223.141-41.mga4.nonfree |
| Mageia:4 | kmod-fglrx | 0 | 14.010.1006-11.mga4.nonfree |
| Mageia:4 | kmod-nvidia-current | 0 | 331.79-11.mga4.nonfree |
| Mageia:4 | kmod-nvidia173 | 0 | 173.14.39-26.mga4.nonfree |
| Mageia:4 | kmod-xtables-addons | 0 | 2.5-6.mga4 |
| Mageia:4 | rpm-mageia-setup | 0 | 1.197-1.1.mga4 |
| Mageia:4 | util-vserver | 0 | 0.30.216-0.pre3062.1.mga4 |
| Red Hat:enterprise_linux:6::client | kernel | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | kernel-abi-whitelists | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | kernel-bootwrapper | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | kernel-debug | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | kernel-debug-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | kernel-debug-devel | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | kernel-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | kernel-debuginfo-common-i686 | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | kernel-debuginfo-common-ppc64 | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | kernel-debuginfo-common-s390x | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | kernel-debuginfo-common-x86_64 | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | kernel-devel | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | kernel-doc | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | kernel-firmware | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | kernel-headers | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | kernel-kdump | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | kernel-kdump-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | kernel-kdump-devel | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | perf | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | perf-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | python-perf | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::client | python-perf-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | kernel | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | kernel-abi-whitelists | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | kernel-bootwrapper | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | kernel-debug | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | kernel-debug-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | kernel-debug-devel | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | kernel-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | kernel-debuginfo-common-i686 | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | kernel-debuginfo-common-ppc64 | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | kernel-debuginfo-common-s390x | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | kernel-debuginfo-common-x86_64 | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | kernel-devel | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | kernel-doc | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | kernel-firmware | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | kernel-headers | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | kernel-kdump | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | kernel-kdump-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | kernel-kdump-devel | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | perf | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | perf-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | python-perf | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::computenode | python-perf-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | kernel | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | kernel-abi-whitelists | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | kernel-bootwrapper | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | kernel-debug | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | kernel-debug-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | kernel-debug-devel | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | kernel-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | kernel-debuginfo-common-i686 | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | kernel-debuginfo-common-ppc64 | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | kernel-debuginfo-common-s390x | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | kernel-debuginfo-common-x86_64 | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | kernel-devel | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | kernel-doc | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | kernel-firmware | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | kernel-headers | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | kernel-kdump | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | kernel-kdump-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | kernel-kdump-devel | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | perf | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | perf-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | python-perf | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::server | python-perf-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | kernel | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | kernel-abi-whitelists | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | kernel-bootwrapper | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | kernel-debug | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | kernel-debug-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | kernel-debug-devel | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | kernel-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | kernel-debuginfo-common-i686 | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | kernel-debuginfo-common-ppc64 | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | kernel-debuginfo-common-s390x | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | kernel-debuginfo-common-x86_64 | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | kernel-devel | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | kernel-doc | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | kernel-firmware | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | kernel-headers | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | kernel-kdump | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | kernel-kdump-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | kernel-kdump-devel | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | perf | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | perf-debuginfo | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | python-perf | 0 | 0:2.6.32-504.el6 |
| Red Hat:enterprise_linux:6::workstation | python-perf-debuginfo | 0 | 0:2.6.32-504.el6 |
| Ubuntu:14.04:LTS | linux | 0 | 3.13.0-36.63 |
| Ubuntu:14.04:LTS | linux-aws | 0 | 4.4.0-1002.2 |
| Ubuntu:14.04:LTS | linux-lts-utopic | 0 | 3.16.0-25.33~14.04.2 |
| Ubuntu:14.04:LTS | linux-lts-vivid | 0 | 3.19.0-18.18~14.04.1 |
| Ubuntu:14.04:LTS | linux-lts-wily | 0 | 4.2.0-18.22~14.04.1 |
| Ubuntu:14.04:LTS | linux-lts-xenial | 0 | 4.4.0-13.29~14.04.1 |
| Ubuntu:16.04:LTS | linux | 0 | 4.2.0-16.19 |
| Ubuntu:16.04:LTS | linux-aws | 0 | 4.4.0-1001.10 |
| Ubuntu:16.04:LTS | linux-gke | 0 | 4.4.0-1003.3 |
| Ubuntu:16.04:LTS | linux-hwe | 0 | 4.8.0-36.36~16.04.1 |
| Ubuntu:16.04:LTS | linux-raspi2 | 0 | 4.2.0-1013.19 |
| Ubuntu:16.04:LTS | linux-snapdragon | 0 | 4.4.0-1012.12 |
| Ubuntu:Pro:16.04:LTS | linux-flo | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | linux-goldfish | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | linux-mako | 0 | No fix |
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