CVE-2018-1000200
Medium · 5.5CVSS
5.5
EPSS
0.5%
Published
Jun 5, 2018
CISA due date
—
Cloudanix analysis
A problem in the Linux kernel can cause programs that lock large amounts of memory to be killed unexpectedly when the system runs low on memory.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
Null pointer dereference in exit_mmap() during OOM kill of processes with mlocked VMAs, triggered when the VM_LOCKED bit is cleared before munlock_vma_pages_all() allowing concurrent unmap_page_range() from the OOM reaper.
Why it matters to the business
Unexpected termination of large memory-locked processes under memory pressure can disrupt critical workloads, reduce system availability, and require manual intervention or restarts on affected Linux systems.
How an attack unfolds
An attacker with local access creates processes that mlock substantial memory regions, then induces memory pressure to invoke the OOM killer; the resulting race between exit_mmap() and the OOM reaper dereferences a null pointer and may crash or destabilize the system.
How to fix it
Upgrade the Linux kernel to a version containing commit 27ae357fa82be5ab73b2ef8d39dcb8ca2563483a or later; rebuild and reboot with the patched kernel; where immediate patching is impossible, limit mlock usage and monitor memory pressure.
How to confirm the fix worked
Verify the running kernel Git commit or version string contains 27ae357fa82be5ab73b2ef8d39dcb8ca2563483a; attempt to reproduce the original OOM + mlock scenario in a test environment and confirm absence of the null dereference.
Typical attack path
- Obtain local code execution on a vulnerable Linux kernel (4.14-4.16).
- Allocate and mlock large virtual memory regions in one or more processes.
- Trigger system-wide memory exhaustion to activate the OOM killer.
- Observe the kernel null dereference during concurrent exit_mmap() and unmap_page_range().
How to detect it
Inspect kernel logs (dmesg, /var/log/kern.log, journalctl) for OOM killer entries followed by null pointer dereference or exit_mmap/munlock_vma_pages_all stack traces; correlate with processes that were using mlock at the time of the OOM event.
- exit_mmap
- munlock_vma_pages_all
- VM_LOCKED bit cleared before munlock
- oom_reaper unmap_page_range concurrent with exit
What your security team should do
- Prioritize kernel upgrade on all systems running versions 4.14 through 4.16 that use mlock.
- Implement memory limits and monitoring to reduce OOM occurrences.
- Review and reduce unnecessary mlock calls in applications.
- Add kernel version checks to vulnerability scanning pipelines.
The record
The Linux Kernel versions 4.14, 4.15, and 4.16 has a null pointer dereference which can result in an out of memory (OOM) killing of large mlocked processes. The issue arises from an oom killed process's final thread calling exit_mmap(), which calls munlock_vma_pages_all() for mlocked vmas.This can happen synchronously with the oom reaper's unmap_page_range() since the vma's VM_LOCKED bit is cleared before munlocking (to determine if any other vmas share the memory and are mlocked).
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | linux | 0 | 4.16.12-1 |
| Debian:12 | linux | 0 | 4.16.12-1 |
| Debian:13 | linux | 0 | 4.16.12-1 |
| Mageia:6 | kernel | 0 | 4.14.44-2.mga6 |
| Mageia:6 | kernel-linus | 0 | 4.14.44-1.mga6 |
| Mageia:6 | kernel-tmb | 0 | 4.14.44-2.mga6 |
| Mageia:6 | kernel-userspace-headers | 0 | 4.14.44-2.mga6 |
| Mageia:6 | kmod-vboxadditions | 0 | 5.2.12-2.mga6 |
| Mageia:6 | kmod-virtualbox | 0 | 5.2.12-2.mga6 |
| Mageia:6 | kmod-xtables-addons | 0 | 2.13-38.mga6 |
| Mageia:6 | wireguard-tools | 0 | 0.0.20180519-1.mga6 |
| Red Hat:enterprise_linux:7::server | kernel | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | kernel-abi-whitelists | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | kernel-alt | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | kernel-bootwrapper | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | kernel-debug | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | kernel-debug-debuginfo | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | kernel-debug-devel | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | kernel-debuginfo | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | kernel-debuginfo-common-ppc64le | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | kernel-devel | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | kernel-doc | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | kernel-headers | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | kernel-tools | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | kernel-tools-debuginfo | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | kernel-tools-libs | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | kernel-tools-libs-devel | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | perf | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | perf-debuginfo | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | python-perf | 0 | 0:4.14.0-115.el7a |
| Red Hat:enterprise_linux:7::server | python-perf-debuginfo | 0 | 0:4.14.0-115.el7a |
| SUSE:Linux Enterprise High Availability Extension 15 | kernel-default | 0 | 4.12.14-25.3.1 |
| SUSE:Linux Enterprise Live Patching 15 | kernel-default | 0 | 4.12.14-25.3.1 |
| SUSE:Linux Enterprise Live Patching 15 | kernel-livepatch-SLE15_Update_1 | 0 | 1-1.3.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 | kernel-default | 0 | 4.12.14-25.3.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 | kernel-source | 0 | 4.12.14-25.3.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 | kernel-zfcpdump | 0 | 4.12.14-25.3.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 | kernel-docs | 0 | 4.12.14-25.3.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 | kernel-obs-build | 0 | 4.12.14-25.3.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 | kernel-source | 0 | 4.12.14-25.3.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 | kernel-syms | 0 | 4.12.14-25.3.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 | kernel-vanilla | 0 | 4.12.14-25.3.1 |
| SUSE:Linux Enterprise Module for Legacy 15 | kernel-default | 0 | 4.12.14-25.3.1 |
| SUSE:Linux Enterprise Workstation Extension 15 | kernel-default | 0 | 4.12.14-25.3.1 |
| Ubuntu:14.04:LTS | linux-azure | 0 | 4.15.0-1023.24~14.04.1 |
| Ubuntu:16.04:LTS | linux-azure | 0 | 4.15.0-1022.22~16.04.1 |
| Ubuntu:16.04:LTS | linux-gcp | 0 | 4.15.0-1018.19~16.04.2 |
| Ubuntu:16.04:LTS | linux-hwe | 0 | 4.15.0-33.36~16.04.1 |
| Ubuntu:18.04:LTS | linux | 0 | 4.15.0-33.36 |
| Ubuntu:18.04:LTS | linux-aws | 0 | 4.15.0-1020.20 |
| Ubuntu:18.04:LTS | linux-azure | 0 | 4.15.0-1022.23 |
| Ubuntu:18.04:LTS | linux-gcp | 0 | 4.15.0-1018.19 |
| Ubuntu:18.04:LTS | linux-kvm | 0 | 4.15.0-1020.20 |
| Ubuntu:18.04:LTS | linux-oem | 0 | 4.15.0-1017.20 |
| Ubuntu:18.04:LTS | linux-raspi2 | 0 | 4.15.0-1021.23 |
| 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