Cloudanix VulnDB

CVE-2018-1000200

Medium · 5.5

CVSS

5.5

EPSS

0.5%

Published

Jun 5, 2018

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

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

  1. Obtain local code execution on a vulnerable Linux kernel (4.14-4.16).
  2. Allocate and mlock large virtual memory regions in one or more processes.
  3. Trigger system-wide memory exhaustion to activate the OOM killer.
  4. 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