Skip to main content
CVE Vulnerability Database

CVE-2020-0986: Windows 10 Privilege Escalation Flaw

CVE-2020-0986 is a privilege escalation vulnerability in Microsoft Windows 10 1507 caused by improper kernel memory handling. Attackers can exploit this to gain elevated privileges. This article covers technical details.

Published:

CVE-2020-0986 Overview

CVE-2020-0986 is a privilege escalation vulnerability in the Windows kernel that occurs when the kernel fails to properly handle objects in memory. This vulnerability specifically affects the splWOW64 component, which is responsible for handling 32-bit print operations on 64-bit Windows systems. An attacker who successfully exploits this vulnerability can execute arbitrary code with elevated privileges, potentially gaining full control over the affected system.

Critical Impact

This vulnerability is listed in CISA's Known Exploited Vulnerabilities (KEV) catalog and has been actively exploited in the wild. Attackers with local access can leverage this flaw to escalate privileges from a low-privileged user to SYSTEM level access, enabling complete system compromise.

Affected Products

  • Microsoft Windows 10 (versions 1507, 1607, 1709, 1803, 1809, 1903, 1909, 2004)
  • Microsoft Windows 8.1 and Windows RT 8.1
  • Microsoft Windows Server 2012, 2012 R2, 2016, and 2019
  • Microsoft Windows Server Semi-Annual Channel (1803, 1903, 1909, 2004)

Discovery Timeline

  • June 9, 2020 - CVE-2020-0986 published to NVD
  • October 29, 2025 - Last updated in NVD database

Technical Details for CVE-2020-0986

Vulnerability Analysis

The vulnerability resides in the Windows Print Spooler's splWOW64 component, which provides a compatibility layer for 32-bit printing applications running on 64-bit Windows systems. The flaw is classified as CWE-787 (Out-of-bounds Write), indicating that the kernel improperly validates memory boundaries when handling specific objects.

When the splWOW64 service processes certain memory operations, it fails to adequately validate pointers passed between user-mode and kernel-mode. This allows an attacker to craft malicious input that corrupts kernel memory structures, ultimately enabling arbitrary code execution in the kernel context.

The vulnerability requires local access to exploit, meaning an attacker must already have the ability to run code on the target system. However, once exploited, it provides complete system compromise by elevating privileges to SYSTEM level. This makes it particularly dangerous in post-exploitation scenarios or when chained with other vulnerabilities that provide initial access.

Root Cause

The root cause of CVE-2020-0986 is improper validation of memory object pointers within the splWOW64 user-mode to kernel-mode transition. When the Print Spooler processes requests through the WOW64 compatibility layer, it fails to properly sanitize memory addresses, allowing an attacker to specify arbitrary memory locations for write operations. This out-of-bounds write condition enables corruption of critical kernel data structures.

Attack Vector

The attack vector is local, requiring the attacker to execute code on the target system with low privileges. The exploitation flow involves:

  1. An attacker with local user access creates a specially crafted application that interacts with the Print Spooler service
  2. The malicious application sends crafted requests to the splWOW64 service containing controlled memory pointers
  3. The service processes these requests without proper validation, leading to an out-of-bounds write condition
  4. The attacker leverages this memory corruption to overwrite kernel memory structures
  5. By carefully controlling the corrupted data, the attacker achieves arbitrary code execution in kernel mode
  6. The attacker gains SYSTEM-level privileges on the compromised host

The exploitation does not require user interaction, making it suitable for automated attack chains. For technical details on the exploitation mechanism, refer to the Packet Storm Exploit Report.

Detection Methods for CVE-2020-0986

Indicators of Compromise

  • Unusual process creation or privilege escalation events originating from the Print Spooler service (spoolsv.exe)
  • Suspicious API calls or memory operations targeting splWOW64 from untrusted processes
  • Unexpected SYSTEM-level processes spawned from low-privileged user sessions
  • Anomalous kernel memory access patterns detected by endpoint protection solutions

Detection Strategies

  • Monitor for privilege escalation attempts involving the Print Spooler service using Endpoint Detection and Response (EDR) solutions
  • Implement kernel-level monitoring to detect out-of-bounds write attempts in protected memory regions
  • Deploy behavioral analysis to identify unexpected process chains where Print Spooler spawns high-privilege processes
  • Configure audit policies to log Print Spooler service access and modification events

Monitoring Recommendations

  • Enable Windows Security Event logging for privilege use (Event ID 4672) and process creation (Event ID 4688)
  • Configure SentinelOne or similar EDR platforms to alert on suspicious Print Spooler behavior and memory manipulation
  • Monitor for exploitation attempts using SIEM rules that correlate Print Spooler activity with privilege escalation patterns
  • Regularly review patch compliance across all Windows systems to ensure CVE-2020-0986 mitigations are applied

How to Mitigate CVE-2020-0986

Immediate Actions Required

  • Apply Microsoft security updates immediately as this vulnerability is actively exploited in the wild
  • Prioritize patching based on asset criticality and exposure, focusing on systems accessible to untrusted users
  • Consider disabling the Print Spooler service on systems where printing is not required
  • Implement application control policies to restrict untrusted code execution on sensitive systems

Patch Information

Microsoft has released security updates to address CVE-2020-0986 as part of the June 2020 Patch Tuesday release. Organizations should apply the appropriate cumulative updates for their Windows versions. For detailed patch information and download links, refer to the Microsoft Security Advisory CVE-2020-0986.

Given that this vulnerability is listed in CISA's Known Exploited Vulnerabilities catalog, federal agencies and organizations following CISA guidance should treat remediation as a priority.

Workarounds

  • Disable the Print Spooler service on domain controllers and systems that do not require print functionality using Group Policy or PowerShell
  • Restrict Print Spooler service access to trusted users only through service-level permissions
  • Implement network segmentation to limit lateral movement in case of compromise
  • Deploy endpoint protection with behavioral monitoring to detect and block exploitation attempts
bash
# Disable Print Spooler service on systems where printing is not required
Stop-Service -Name Spooler -Force
Set-Service -Name Spooler -StartupType Disabled

# Verify service status
Get-Service -Name Spooler | Select-Object Name, Status, StartType

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.